Skip to content

Latest commit

 

History

History
247 lines (161 loc) · 7.7 KB

ChangeLog.md

File metadata and controls

247 lines (161 loc) · 7.7 KB

Changelog

[0.4.6] - 2023-06-03

Fixed

  • IO: Have fd_open_for_write() overwrite the file if it already exists on Windows

[0.4.5] - 2023-06-03

Fixed

  • PATH: Have path_cp() exit if no bytes are read or written on Windows

[0.4.4] - 2023-05-16

Fixed

  • NOBUILD.H: Fix inclusion of implementation when NOBUILD_IMPLEMENTATION is not defined

[0.4.3] - 2023-05-12

Fixed

  • Use nobuild__GetLastErrorAsString() everywhere GetLastErrorAsString() is used'

[0.4.2] - 2023-05-12

Fixed

  • Avoid using VLA's when building on windows
  • Avoid using PATH_MAX on windows

[0.4.1] - 2023-05-12

Changed

  • PATH: Make is_path1_modified_after_path2() recursively check directories for the most recently modified file
  • PATH: Deprecate is_path1_modified_after_path2() in favor of path_is_newer()

Added

  • PATH: Add path_is_newer() function
  • CSTR: Add cstr_array_contains() function

[0.4.0] - 2023-05-11

Removed

  • BREAKING: Removed cstr_no_ext function.
  • BREAKING: Removed then IN and OUT macros.

Changed

  • BREAKING: cst_array_remove returns Cstr_Array instead of Cstr.
  • Deprecated VLOG function.

Fixed

  • Fixed cstr_array_remove not correctly returning the modified Cstr_Array.

Added

  • Generated standalone versions for each nobuild library.

[0.3.10] - 2023-05-9

Fixed

  • Fixed realloc: invalid pointer error when nobuild rebuilds itself.

[0.3.9] - 2023-04-21

Fixed

  • Fixed string returned from path_dirname not being null-terminated correctly.

[0.3.8] - 2023-04-21

Added

  • Added fd_write function. This allows you to write bytes from a buffer into a specified Fd.
  • Added fd_read function. This allows you to read bytes into a buffer from a specified Fd.

[0.3.7] - 2023-04-19

Added

  • Added fd_printf function. It's a printf function that outputs into into the specified Fd.
  • Added file_to_c_array function and helper macro that embed's a file into a C array of bytes.

[0.3.6] - 2023-04-18

Fixed

  • Fixed security warnings generated by calling strerror, strcpy, and strncpy on windows.

[0.3.5] - 2023-04-18

Changed

  • Deprecated IN macro, use CHAIN_IN instead.
  • Deprecated OUT macro, use CHAIN_OUT instead.

Added

  • Included "direct.h" on windows.

Fixed

  • Fixed various conversion warnings.
  • Fixed calls to undefined functons on windows.

[0.3.4] - 2023-04-15

Changed

  • Deprecated cst_no_ext function, use path_no_ext instead.
  • Prevent is_path_1_modified_after_path2 from causing a crash if either path didn't exist.

Added

  • Added path_no_ext function to replace cstr_no_ext.
  • Forwrad declared is_path1_modified_after_path2 function and added IS_NEWER macro..
  • Added path_copy function and COPY helper macro for recursive copying.
  • Added path_dirname function and DIRNAME helper macro to extract path dirname.
  • Added path_basename function and BASENAME helper macro to extract path basename.
  • Added path_is_file function and IS_FILE helper macro.

[0.3.3] - 2023-04-15

Changed

  • Logging functions print the calling function and source line.

Added

  • Define TODO and TODO_SAFE macro to log unimplemented features.

[0.3.2] - 2023-04-15

Changed

  • Add capacity field to Cstr_Array struct.

Added

  • Add cstr_starts_with function and STARTS_WITH macro helper to check if Cstr starts with a prefix
  • Add cstr_array_from_cstr function and SPLIT macro helper to split Cstr to Cstr_Array
  • Add cstr_array_remove function to remove a specific string from a Cstr_Array
  • Add cstr_array_concat function to concatenate a Cstr_Array into another.

[0.3.1] - 2023-04-15

Added

  • Define CSTR_ARRAY_MAKE macro that automatically null terminates the var args list passed to it

[0.3.0] - 2021-07-30

Changed

  • Have CMD macro use the added command system

Added

  • Define GO_REBUILD_URSELF macro to add code for rebuilding the executable if nobuild.c was modified.
  • Add rebuild_urself() as backend for GO_REBUILD_URSELF.
  • Add Cstr as type alias to const char *
  • Define a type struct Cstr_Array for an array of Cstr that stores its length.
  • Add cstr_array_make() for creating a Cstr_Array for varargs. The list must be NULL terminated.
  • Add cstr_array_append() to create a new Cstr_Array and append a Cstr to 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 like ERRO() but crashes the whole application.
  • Add Cmd struct to represent a single command line.
  • Add Cmd_Array struct to represent a series of command lines, storing the number of commands.
  • Add Fd as type alias for File descriptor.
  • Add Pid as 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 the cmd asynchronously with custom input and output.
  • Add cmd_run_sync() to run cmd synchronously.
  • 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 gcc printf attributes to logging functions.
  • Add Pipe struct 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_Token struct that represent a part redirectable entity.
  • Add Chain struct 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 a Chain from a series of Chain_Tokens.
  • Add Chain_Token_Type enum to store the different types of tokens.
  • Add IN() macro to create an input Chain_Token.
  • Add OUT() macro to create an output Chain_Token.
  • Add CHAIN_CMD() to represent a command that is run as part of the chain.
  • Add shift_args() function.

Removed

  • PATH_SEP_LEN
  • FOREACH_VARGS
  • CONCAT_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);

[0.2.0] - 2021-01-30

Added

  • Add ENDS_WITH(str, postfix) function that checks if str ends with postfix.
  • Add IS_DIR(path) function that checks if path is a directory.
  • Add RM(path) function that removes the specified path recursively.

[0.1.0] - 2021-01-27

Changed

  • Deprecate remove_ext(path). Use NOEXT(path) instead.
  • Deprecate CONCAT_SEP(sep, ...). Use JOIN(sep, ...) instead.
  • Deprecate concat_sep_impl(sep, ...). Use JOIN(sep, ...) instead.

Added

  • 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.

[0.0.1] - 2021-01-27

Implemented enough functionality to build bm.