 530f237500
			
		
	
	530f237500
	
	
	
		
			
			A GSoC project. * fa/remote-svn: Add a test script for remote-svn remote-svn: add marks-file regeneration Add a svnrdump-simulator replaying a dump file for testing remote-svn: add incremental import remote-svn: Activate import/export-marks for fast-import Create a note for every imported commit containing svn metadata vcs-svn: add fast_export_note to create notes Allow reading svn dumps from files via file:// urls remote-svn, vcs-svn: Enable fetching to private refs When debug==1, start fast-import with "--stats" instead of "--quiet" Add documentation for the 'bidi-import' capability of remote-helpers Connect fast-import to the remote-helper via pipe, adding 'bidi-import' capability Add argv_array_detach and argv_array_free_detached Add svndump_init_fd to allow reading dumps from arbitrary FDs Add git-remote-testsvn to Makefile Implement a remote helper for svn in C
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| argv-array API
 | |
| ==============
 | |
| 
 | |
| The argv-array API allows one to dynamically build and store
 | |
| NULL-terminated lists.  An argv-array maintains the invariant that the
 | |
| `argv` member always points to a non-NULL array, and that the array is
 | |
| always NULL-terminated at the element pointed to by `argv[argc]`. This
 | |
| makes the result suitable for passing to functions expecting to receive
 | |
| argv from main(), or the link:api-run-command.html[run-command API].
 | |
| 
 | |
| The link:api-string-list.html[string-list API] is similar, but cannot be
 | |
| used for these purposes; instead of storing a straight string pointer,
 | |
| it contains an item structure with a `util` field that is not compatible
 | |
| with the traditional argv interface.
 | |
| 
 | |
| Each `argv_array` manages its own memory. Any strings pushed into the
 | |
| array are duplicated, and all memory is freed by argv_array_clear().
 | |
| 
 | |
| Data Structures
 | |
| ---------------
 | |
| 
 | |
| `struct argv_array`::
 | |
| 
 | |
| 	A single array. This should be initialized by assignment from
 | |
| 	`ARGV_ARRAY_INIT`, or by calling `argv_array_init`. The `argv`
 | |
| 	member contains the actual array; the `argc` member contains the
 | |
| 	number of elements in the array, not including the terminating
 | |
| 	NULL.
 | |
| 
 | |
| Functions
 | |
| ---------
 | |
| 
 | |
| `argv_array_init`::
 | |
| 	Initialize an array. This is no different than assigning from
 | |
| 	`ARGV_ARRAY_INIT`.
 | |
| 
 | |
| `argv_array_push`::
 | |
| 	Push a copy of a string onto the end of the array.
 | |
| 
 | |
| `argv_array_pushl`::
 | |
| 	Push a list of strings onto the end of the array. The arguments
 | |
| 	should be a list of `const char *` strings, terminated by a NULL
 | |
| 	argument.
 | |
| 
 | |
| `argv_array_pushf`::
 | |
| 	Format a string and push it onto the end of the array. This is a
 | |
| 	convenience wrapper combining `strbuf_addf` and `argv_array_push`.
 | |
| 
 | |
| `argv_array_pop`::
 | |
| 	Remove the final element from the array. If there are no
 | |
| 	elements in the array, do nothing.
 | |
| 
 | |
| `argv_array_clear`::
 | |
| 	Free all memory associated with the array and return it to the
 | |
| 	initial, empty state.
 | |
| 
 | |
| `argv_array_detach`::
 | |
| 	Detach the argv array from the `struct argv_array`, transfering
 | |
| 	ownership of the allocated array and strings.
 | |
| 
 | |
| `argv_array_free_detached`::
 | |
| 	Free the memory allocated by a `struct argv_array` that was later
 | |
| 	detached and is now no longer needed.
 |