This is the documentation for alpha 4.0.9 super! The documentation has been made as accurate as possible but there may be errors. If you have questions or discover errors please contact <spanstyle='font-family: "Courier New", Courier, monospace; text-align: left;'>editor@4coder.net</span>.</p>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>an integer id enumerated in 4coder_custom.h starting with cmdid</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the target view that will display the output buffer, may be NULL, see description for details</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>buffer</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a buffer identifier for the buffer that will be filled with the output from the command</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>path</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the path from which the command is executed</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>path_len</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the path string</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>command</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the command to be executed</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>command_len</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the command string</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>flags</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>may be zero or one or more CLI flags ORed together</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the command is successfully started, returns zero otherwise</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Executes a system command as if called from the command line, and sends the output to a buffer. The buffer
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the string str</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Stores the string str in the clipboard initially with index 0.
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the number of items in the clipboard</div></div><hr>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the size of the item on the clipboard associated with the given index</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>There are multiple items on the 4coder clipboard. The most recent copy is always at
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the summary of the first buffer in a buffer loop</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Begins a loop across all the buffers.
should not be killed durring a buffer loop.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Access_Flag_doc'>Access_Flag</a></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#get_buffer_next_doc'>get_buffer_next</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>pointer to the loop buffer originally returned by get_buffer_first</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the access flags for the access</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Writes the next buffer into the buffer struct. To get predictable results every
should not be killed durring a buffer loop.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Access_Flag_doc'>Access_Flag</a></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#get_buffer_first_doc'>get_buffer_first</a></div></div><hr>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns a summary that describes the indicated buffer if it exists and is accessible</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the name string</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>access</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the access flags for the access</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns a summary that describes the indicated buffer if it exists and is accessible</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>one or more types of boundaries to use for stopping the seek</div></div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Returns non-zero on success.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>The output buffer must have a capacity of at least (end - start).
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the start of the range to edit</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>end</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the end of the range to edit</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>str</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the string to write into the range</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>len</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the str string</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the replacement succeeds</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>If this call succeeds it deletes the range from start to end
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>One of the Buffer_Setting_ID enum values that identifies the setting to set.</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the buffer in which to apply the auto indenting</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>start</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the position to start the auto indenting</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>end</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the position to end the auto indenting</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>tab_width</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the number of spaces to place as a tab</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>flags</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the auto tab behavior flags</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero when the call succeeds</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Applies the built in auto-indentation rule to the code in the range from
completed this function will fail.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Auto_Indent_Flag_doc'>Auto_Indent_Flag</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the filename string</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>flags</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>flags for buffer creation behavior</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the summary of the created buffer on success or a NULL buffer otherwise</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Tries to create a new buffer and associate it to the given filename. If such a buffer already
the filename does not correspond to a file on disk the buffer is created empty.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Buffer_Create_Flag_doc'>Buffer_Create_Flag</a></div></div><hr>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the save succeeds</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a buffer identifier specifying the buffer to try to kill</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>view_id</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the id of view that will contain the "are you sure" dialogue</div></div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the kill succeeds</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Tries to kill the idenfied buffer. If the buffer is dirty and the "are you sure"
dialogue needs to be displayed the provided view is used to show the dialogue.
If the view is not open the kill fails.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Buffer_Kill_Flags_doc'>Buffer_Kill_Flags</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the access flags for the access</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the summary of the first view in a view loop</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Begins a loop across all the open views.
Views should not be closed or opened durring a view loop.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Access_Flag_doc'>Access_Flag</a></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#get_view_next_doc'>get_view_next</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>pointer to the loop view originally returned by get_view_first</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the access flags for the access</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Writes the next view into the view struct. To get predictable results every
Views should not be closed or opened durring a view loop.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Access_Flag_doc'>Access_Flag</a></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#get_view_first_doc'>get_view_first</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the access flags for the access</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns a summary that describes the indicated view if it is open and is accessible</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the view to set as active</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero on success</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>If the given view is a currently open view, it is set as the
active view, and takes subsequent commands and is returned
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>The view on which to set a setting.</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>setting</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>One of the View_Setting_ID enum values that identifies the setting to set.</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>value</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>The value to set the specified setting to.</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>The view on which to adjust size.</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>t</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>The proportion of the view's containing box that it should occupy in [0,1]</div></div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>if true the preferred x is updated to match the new cursor position</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero on success</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>Sets the the view's cursor position. set_preferred_x should usually be true unless the change in
cursor position is is a vertical motion that tries to keep the cursor in the same column or x position.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Buffer_Seek_doc'>Buffer_Seek</a></div></div><hr>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero on success</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>On success view_set_buffer sets the specified view's current buffer and
cancels and dialogue shown in the view and displays the file.</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Set_Buffer_Flag_doc'>Set_Buffer_Flag</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>input type flag that specifies the types of inputs that should be returned</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>abort_type</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>input type flag that specifies the types of inputs that should cause an abort signal</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns a User_Input that describes an event passed to the command</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>This call preempts the command. The command is resumed if either a get or abort condition
If a get condition is met the user input is returned</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>See Also</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#Input_Type_Flag_doc'>Input_Type_Flag</a></div><divstyle='margin-left: 5mm; margin-right: 5mm;'><ahref='#User_Input_doc'>User_Input</a></div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a pointer to the Query_Bar struct that defines the bar's contents</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>flags</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>not currently used</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero on success</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>The memory pointed to by bar must remain valid until a call to end_query_bar or
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>not currently used</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>bar must be a pointer previously passed to start_query_bar previously in the same command.</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>an array of color structs pairing differet style tags to color codes</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>count</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the number of color structs in the colors array</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>For each color struct in the array, the color in the style pallet is set to the color
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>an array of color structs listing style tags to get color values for</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>count</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the number of color structs in the colors array</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>For each color struct in the array, the color field of the struct is filled with the
color from the specified color in the pallet.</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a buffer that receives the 4coder 'hot directory'</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>capacity</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the maximum size to be output to the output buffer</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns the size of the string written into the buffer</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>4coder has a concept of a 'hot directory' which is the directory most recently
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the directory whose files will be enumerated in the returned list</div></div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns a File_List struct containing pointers to the names of the files in
the specified directory. The File_List returned should be passed to free_file_list
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>after this call the file list passed in should not be read or written to</div></div><hr>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the file exists, returns zero if the file does not exist</div></div><hr>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a string buffer containing a directory</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>len</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the string in the string buffer</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>capacity</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the maximum size of the string buffer</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>rel_path</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the path to change to, may include '.' or '..'</div></div>
</div>
<div>
<divstyle='font-weight: 600;'>rel_len</div>
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>the length of the rel_path string</div></div>
</div>
<divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Return</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>returns non-zero if the call succeeds, returns zero otherwise</div><divstyle='margin-top: 3mm; margin-bottom: 3mm; color: #309030;'><b><i>Description</i></b></div><divstyle='margin-left: 5mm; margin-right: 5mm;'>This call succeeds if the directory exists and the new directory fits inside the dir buffer.
<divstyle='margin-bottom: 6mm;'><divstyle='margin-left: 5mm; margin-right: 5mm;'>a buffer that receives the path to the 4ed executable file</div></div>