Not Released Yet
- Have
CMDmacro use the added command system
- Define
GO_REBUILD_URSELFmacro to add code for rebuilding the executable ifnobuild.cwas modified. - Add
rebuild_urself()as backend forGO_REBUILD_URSELF. - Add
Cstras type alias toconst char * - Define a type struct
Cstr_Arrayfor an array ofCstrthat stores its length. - Add
cstr_array_make()for creating aCstr_Arrayfor varargs. The list must be NULL terminated. - Add
cstr_array_append()to create a newCstr_Arrayand append aCstrto it. - Add
cstr_ends_with()function - Add
cstr_array_join()function - Add
cstr_no_ext()function - Add
VLOG()function that acts as the backend of each logging function. - Add
PANIC()function. It's likeERRO()but crashes the whole application. - Add
Cmdstruct to represent a single command line. - Add
Cmd_Arraystruct to represent a series of command lines, storing the number of commands. - Add
Fdas type alias for File descriptor. - Add
Pidas type alias for process ID. - Add
pid_wait()to wait until the process with the specified pid is finished. - Add
cmd_show()to render the cmd to stdout. - Add
cmd_run_async()to run thecmdasynchronously with custom input and output. - Add
cmd_run_sync()to runcmdsynchronously. - Add
fd_open_for_read()to open a path for reading and return a file descriptor to it. - Add
fd_open_for_write()to open a path for writing and return a file descriptor to it. - Add
fd_close()to close a file descriptor. - Add
path_rm()function. - Add
path_mkdirs()function. - Add
path_rename()to rename a path. - Define
RENAME()macro helper. - Add
path_exists()function. - Define
PATH_EXISTS()macro helper. - Add
gccprintf attributes to logging functions. - Add
Pipestruct that represents a shell pipe. - Add
pipe_make()function to have the os create the pipe. - Define
PIPE()macro helper to create a pipe for chaining commands. - Add
Chain_Tokenstruct that represent a part redirectable entity. - Add
Chainstruct that represents a series of commands piped to each other. - Add
chain_run_sync()to run a chain synchronously. - Add
chain_echo()to echo a chain. - Add
chain_build_from_tokens()to build a chain from tokens. - Define
CHAIN()macro helper to create aChainfrom a series ofChain_Tokens. - Add
Chain_Token_Typeenum to store the different types of tokens. - Add
IN()macro to create an inputChain_Token. - Add
OUT()macro to create an outputChain_Token. - Add
CHAIN_CMD()to represent a command that is run as part of the chain. - Add
shift_args()function.
PATH_SEP_LENFOREACH_VARGSCONCAT_SEP(sep, ...) build__deprecated_concat_sep(sep, __VA_ARGS__, NULL)concat_impl(int ignore, ...);concat_sep_impl(const char *sep, ...);build__join(const char *sep, ...);mkdirs_impl(int ignore, ...);cmd_impl(int ignore, ...);remove_ext(const char *path);shift(int *argc, char ***argv);
- Add
ENDS_WITH(str, postfix)function that checks ifstrends withpostfix. - Add
IS_DIR(path)function that checks ifpathis a directory. - Add
RM(path)function that removes the specified path recursively.
- Deprecate
remove_ext(path). UseNOEXT(path)instead. - Deprecate
CONCAT_SEP(sep, ...). UseJOIN(sep, ...)instead. - Deprecate
concat_sep_impl(sep, ...). UseJOIN(sep, ...)instead.
- Add logging functions
INFO(fmt, ...),WARN(fmt, ...),ERRO(fmt, ...). - Introduce API conventions. Functions that start with
nobuild__(double underscore) are private to the library and should not be relied upon. They can be changed in any release without a warning.
Implemented enough functionality to build bm.