]> git.seodisparate.com - SimpleArchiver/log
SimpleArchiver
3 days agoAttempt to fix write bug by setting pipe blocking archive_create_fail_attempt_fix
Stephen Seo [Thu, 10 Apr 2025 06:00:55 +0000 (15:00 +0900)]
Attempt to fix write bug by setting pipe blocking

Attempts to fix https://github.com/Stephen-Seo/SimpleArchiver/issues/6 .

3 days agoMerge branch 'dev', Version 1.20 dev main 1.20
Stephen Seo [Fri, 18 Apr 2025 08:14:34 +0000 (17:14 +0900)]
Merge branch 'dev', Version 1.20

3 days agoUpdate Changelog.md
Stephen Seo [Fri, 18 Apr 2025 08:02:12 +0000 (17:02 +0900)]
Update Changelog.md

3 days agoAttempt to fix more warnings when 32-bit compiling
Stephen Seo [Fri, 18 Apr 2025 08:01:03 +0000 (17:01 +0900)]
Attempt to fix more warnings when 32-bit compiling

3 days agoFix file format 4 archive creation
Stephen Seo [Fri, 18 Apr 2025 07:57:50 +0000 (16:57 +0900)]
Fix file format 4 archive creation

Previous implementation errored out by mistake when counts were at least
2^32 in size, since file format 4 should support 64-bit (8-byte) counts
of file-count-size, chunk-count-size, and directory-count-size.

3 days agoBump version to 1.20
Stephen Seo [Fri, 18 Apr 2025 07:42:53 +0000 (16:42 +0900)]
Bump version to 1.20

3 days agoFix potential uninitialized variable warning
Stephen Seo [Fri, 18 Apr 2025 07:37:36 +0000 (16:37 +0900)]
Fix potential uninitialized variable warning

Code logic ensures that the variable is already set to a value where the
warning occurs (sometimes), but for now, just initialize to zero to
inhibit the warning.

3 days agoFix integer conversions in 32-bit systems
Stephen Seo [Fri, 18 Apr 2025 07:36:19 +0000 (16:36 +0900)]
Fix integer conversions in 32-bit systems

3 days agoFix integer comparison of different signedness
Stephen Seo [Fri, 18 Apr 2025 06:31:48 +0000 (15:31 +0900)]
Fix integer comparison of different signedness

3 days agoUpdate Changelog.md
Stephen Seo [Fri, 18 Apr 2025 06:18:37 +0000 (15:18 +0900)]
Update Changelog.md

3 days agoUpdate Changelog.md
Stephen Seo [Fri, 18 Apr 2025 06:18:37 +0000 (15:18 +0900)]
Update Changelog.md

3 days agoFix usage of return value from fcntl(...)
Stephen Seo [Thu, 10 Apr 2025 06:00:27 +0000 (15:00 +0900)]
Fix usage of return value from fcntl(...)

11 days agoUpdate Changelog.md
Stephen Seo [Thu, 10 Apr 2025 06:58:03 +0000 (15:58 +0900)]
Update Changelog.md

12 days agoUpdate Changelog.md
Stephen Seo [Wed, 9 Apr 2025 12:54:23 +0000 (21:54 +0900)]
Update Changelog.md

12 days agoUpdate Changelog.md
Stephen Seo [Wed, 9 Apr 2025 10:14:14 +0000 (19:14 +0900)]
Update Changelog.md

12 days agoMerge branch 'dev', version 1.19 1.19
Stephen Seo [Wed, 9 Apr 2025 09:56:57 +0000 (18:56 +0900)]
Merge branch 'dev', version 1.19

12 days agov1.19, fix write error, refactor error handling
Stephen Seo [Wed, 9 Apr 2025 09:56:22 +0000 (18:56 +0900)]
v1.19, fix write error, refactor error handling

12 days agoFix bug where writing to archive fails sometimes
Stephen Seo [Wed, 9 Apr 2025 09:52:27 +0000 (18:52 +0900)]
Fix bug where writing to archive fails sometimes

Written bytes was not correctly calculated because it was not checking
against actual written-byte count, but was erronously using the prior
read-byte count.

5 weeks agoRefactor error handling
Stephen Seo [Tue, 11 Mar 2025 02:55:01 +0000 (11:55 +0900)]
Refactor error handling

6 weeks agoRefactor error handling in archiver.c
Stephen Seo [Mon, 10 Mar 2025 03:07:10 +0000 (12:07 +0900)]
Refactor error handling in archiver.c

Errors reported from a function in archiver.c called by main.c now
includes the line number in archiver.c where the error originated from.

7 weeks agoMerge branch 'dev', Version 1.18 1.18
Stephen Seo [Fri, 28 Feb 2025 04:33:07 +0000 (13:33 +0900)]
Merge branch 'dev', Version 1.18

7 weeks agoVersion 1.18
Stephen Seo [Fri, 28 Feb 2025 04:32:57 +0000 (13:32 +0900)]
Version 1.18

7 weeks agoUpdate README.md
Stephen Seo [Thu, 27 Feb 2025 08:04:25 +0000 (17:04 +0900)]
Update README.md

7 weeks agoAdd "--force-tmpfile"
Stephen Seo [Thu, 27 Feb 2025 01:31:58 +0000 (10:31 +0900)]
Add "--force-tmpfile"

"--force-tmpfile" forces the use of "tmpfile()" instead of a file
created in the default directory for temporary files (which is currently
the same directory as the currently created archive) when using
compression.

Note that this option is mutually exclusive with "--temp-files-dir".

7 weeks agoUpdate Changelog
Stephen Seo [Wed, 26 Feb 2025 09:48:05 +0000 (18:48 +0900)]
Update Changelog

7 weeks agoSet umask on compression-temp-file
Stephen Seo [Wed, 26 Feb 2025 09:42:45 +0000 (18:42 +0900)]
Set umask on compression-temp-file

Previous behavior created temp files (for compression) with default
permissions. This commit uses umask to keep only permissions for the
user and deny permissions to others (and restores the umask after
creation of the temp file).

7 weeks agoUpdate README, Changelog
Stephen Seo [Tue, 25 Feb 2025 08:54:51 +0000 (17:54 +0900)]
Update README, Changelog

7 weeks agoMinor refactorings
Stephen Seo [Tue, 25 Feb 2025 04:35:32 +0000 (13:35 +0900)]
Minor refactorings

7 weeks agoMinor fixes
Stephen Seo [Tue, 25 Feb 2025 04:12:33 +0000 (13:12 +0900)]
Minor fixes

Fix usage of "printf" functions due to a variable type changing from
"size_t" to "uint64_t".

7 weeks agoRemove platform specific #if blocks in archiver.c
Stephen Seo [Tue, 25 Feb 2025 03:00:57 +0000 (12:00 +0900)]
Remove platform specific #if blocks in archiver.c

7 weeks agoImpl. file format v 4 write
Stephen Seo [Tue, 25 Feb 2025 08:49:31 +0000 (17:49 +0900)]
Impl. file format v 4 write

This is actually part of an original commit that was broken into two
pieces due to weird git shennanigans (newly added code was not properly
"diff"ed by git).

7 weeks agoImpl. file format v 4 parsing
Stephen Seo [Tue, 25 Feb 2025 08:46:22 +0000 (17:46 +0900)]
Impl. file format v 4 parsing

This is actually part of an original commit that was broken into two
pieces due to weird git shennanigans (newly added code was not properly
"diff"ed by git).

7 weeks agoFixes for other file formats, v4 file prep.
Stephen Seo [Tue, 25 Feb 2025 02:50:12 +0000 (11:50 +0900)]
Fixes for other file formats, v4 file prep.

Linked-List count is now uint64_t instead of size_t.

7 weeks agoBump version to 1.17 1.17
Stephen Seo [Tue, 25 Feb 2025 01:57:42 +0000 (10:57 +0900)]
Bump version to 1.17

7 weeks agoFix whitelist begins-with/ends-with
Stephen Seo [Tue, 25 Feb 2025 01:55:07 +0000 (10:55 +0900)]
Fix whitelist begins-with/ends-with

7 weeks agoMerge branch 'dev', Version 1.16 1.16
Stephen Seo [Tue, 25 Feb 2025 01:23:09 +0000 (10:23 +0900)]
Merge branch 'dev', Version 1.16

7 weeks agoBump version to 1.16
Stephen Seo [Tue, 25 Feb 2025 01:22:22 +0000 (10:22 +0900)]
Bump version to 1.16

7 weeks agoUpdate Changelog.md
Stephen Seo [Tue, 25 Feb 2025 01:21:15 +0000 (10:21 +0900)]
Update Changelog.md

8 weeks agoRemove DEBUG output
Stephen Seo [Fri, 21 Feb 2025 07:40:28 +0000 (16:40 +0900)]
Remove DEBUG output

8 weeks agoUpdate README.md, usage text
Stephen Seo [Fri, 21 Feb 2025 07:35:52 +0000 (16:35 +0900)]
Update README.md, usage text

8 weeks agoUpdate Changelog.md
Stephen Seo [Fri, 21 Feb 2025 07:31:30 +0000 (16:31 +0900)]
Update Changelog.md

8 weeks agoFix/refactor created temp file when compressing
Stephen Seo [Fri, 21 Feb 2025 07:26:32 +0000 (16:26 +0900)]
Fix/refactor created temp file when compressing

Before this commit, archived files using compression would use a
temporary file in the current-working-directory (usually the same
directory specified by "-C <dir>") to store compressed files. This is
required by design as the file-size of the compressed file/chunk is
required before storing the data. In other words, the size is stored
before the data without seeking so that output can be streamable (in
case of "-f -" or "-f /dev/stdout" when compressing).

This commit changes the behavior of creating temporary files for
compression by placing them in the same directory as the output file
(specified by "-f <output_file>"), or using "tmpfile()" if that should
fail. Note that the `--temp-files-dir <dir>` option exists, and
"tmpfile()" is used as a fallback in case writing to
`--temp-files-dir <dir>` fails.

8 weeks agoFix lines longer than 80 characters in sources
Stephen Seo [Thu, 20 Feb 2025 06:45:49 +0000 (15:45 +0900)]
Fix lines longer than 80 characters in sources

8 weeks agoUpdate help text on `--chunk-min-size`, README.md
Stephen Seo [Thu, 20 Feb 2025 06:36:19 +0000 (15:36 +0900)]
Update help text on `--chunk-min-size`, README.md

8 weeks agoUpdate help text on `--chunk-min-size`, README.md
Stephen Seo [Thu, 20 Feb 2025 06:36:19 +0000 (15:36 +0900)]
Update help text on `--chunk-min-size`, README.md

8 weeks agoFix parser help text and README.md
Stephen Seo [Thu, 20 Feb 2025 02:13:16 +0000 (11:13 +0900)]
Fix parser help text and README.md

2 months agoFix parser help text and README.md
Stephen Seo [Thu, 20 Feb 2025 02:13:16 +0000 (11:13 +0900)]
Fix parser help text and README.md

2 months agoUpdate README.md
Stephen Seo [Tue, 18 Feb 2025 12:35:33 +0000 (21:35 +0900)]
Update README.md

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 18 Feb 2025 05:07:44 +0000 (14:07 +0900)]
Update Changelog.md

2 months agoImpl white/black-listing for file format v 0
Stephen Seo [Tue, 18 Feb 2025 05:04:53 +0000 (14:04 +0900)]
Impl white/black-listing for file format v 0

This commit implements white/black-listing for create/test/extract for
file format version 0.

At this point, all file formats should have this feature enabled. Some
testing may be required.

2 months agoWIP white/black-list: change "contains" to any/all
Stephen Seo [Tue, 18 Feb 2025 04:24:39 +0000 (13:24 +0900)]
WIP white/black-list: change "contains" to any/all

Changed `--whitelist-contains` and `--blacklist-contains` into:

`--whitelist-contains-any`
`--whitelist-contains-all`
`--blacklist-contains-any`
`--blacklist-contains-all`

2 months agoRefactor white/black-list code
Stephen Seo [Tue, 18 Feb 2025 04:10:14 +0000 (13:10 +0900)]
Refactor white/black-list code

2 months agoUpdate info on `--blacklist-contains`
Stephen Seo [Tue, 18 Feb 2025 03:15:15 +0000 (12:15 +0900)]
Update info on `--blacklist-contains`

2 months agoWIP white/black-lists: Impl. for file v 1, 2
Stephen Seo [Tue, 18 Feb 2025 02:54:35 +0000 (11:54 +0900)]
WIP white/black-lists: Impl. for file v 1, 2

Implemented white/black-lists create/test/extract for file formats
versions 1 and 2.

TODO:
    - Impl. white/black-lists create/text/extract for file format 0

2 months agoAttempt to fix build when git-describe fails
Stephen Seo [Mon, 17 Feb 2025 11:44:21 +0000 (20:44 +0900)]
Attempt to fix build when git-describe fails

2 months agoAttempt to fix build when git-describe fails
Stephen Seo [Mon, 17 Feb 2025 11:44:21 +0000 (20:44 +0900)]
Attempt to fix build when git-describe fails

2 months agoAttempt to fix github actions build: cmake changes
Stephen Seo [Mon, 17 Feb 2025 08:02:39 +0000 (17:02 +0900)]
Attempt to fix github actions build: cmake changes

2 months agoAttempt to fix github actions build: cmake changes
Stephen Seo [Mon, 17 Feb 2025 08:02:39 +0000 (17:02 +0900)]
Attempt to fix github actions build: cmake changes

2 months agoImpl. setting version.h from CMake
Stephen Seo [Mon, 17 Feb 2025 07:52:34 +0000 (16:52 +0900)]
Impl. setting version.h from CMake

Previous implementation only updated the version if the CMakeLists.txt
file was updated. This now auto-generates the version into version.h in
every build.

2 months agoImpl. setting version.h from CMake
Stephen Seo [Mon, 17 Feb 2025 07:52:34 +0000 (16:52 +0900)]
Impl. setting version.h from CMake

Previous implementation only updated the version if the CMakeLists.txt
file was updated. This now auto-generates the version into version.h in
every build.

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 06:42:32 +0000 (15:42 +0900)]
WIP white/black-list: Update Changelog.md

TODO:

    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 06:40:33 +0000 (15:40 +0900)]
WIP white/black-list: Update Changelog.md

TODO:

    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Fix b-contains behavior
Stephen Seo [Mon, 17 Feb 2025 06:29:18 +0000 (15:29 +0900)]
WIP white/black-list: Fix b-contains behavior

Up to this commit, --blacklist-contains would blacklist any entry that
matches any <text>.
This behavior has been changed to only blacklist any entry that contains
all <text> entries specified by multiple --blacklist-contains (or just 1
if there was only 1 flag).

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: Impl. case-insensitive
Stephen Seo [Mon, 17 Feb 2025 06:23:44 +0000 (15:23 +0900)]
WIP white/black-list: Impl. case-insensitive

Impelment flag that makes white/black-list filtering be
case-insensitive.

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/text/extract for file format version
      0.

2 months agoWIP white/black-list: Impl. v 3 test/extract lists
Stephen Seo [Mon, 17 Feb 2025 05:59:34 +0000 (14:59 +0900)]
WIP white/black-list: Impl. v 3 test/extract lists

Implemented usage of white/black-lists for test/extract (`-t` and `-x`)
for file format version 3 archives.

TODO:
    - white/black-lists for test/extract for file format version 1 and
      2.
    - white/black-lists for create/test/extract for file format version
      0.

2 months agoWIP white/black-list: refactoring
Stephen Seo [Mon, 17 Feb 2025 04:53:27 +0000 (13:53 +0900)]
WIP white/black-list: refactoring

2 months agoWIP white/black-list: Update Changelog.md
Stephen Seo [Mon, 17 Feb 2025 04:37:33 +0000 (13:37 +0900)]
WIP white/black-list: Update Changelog.md

2 months agoWIP white/black-list: Update README.md
Stephen Seo [Mon, 17 Feb 2025 04:33:31 +0000 (13:33 +0900)]
WIP white/black-list: Update README.md

2 months agoWIP white/black-list: Impl. for create v 1,2,3
Stephen Seo [Mon, 17 Feb 2025 04:29:14 +0000 (13:29 +0900)]
WIP white/black-list: Impl. for create v 1,2,3

Implements white/black-listing files for archive creation for file
formats 1, 2, and 3.

TODO:
    - white/black-listing files for archive test and extract for file
      format versions 1, 2, and 3.
    - white/black-listing files for archive create, test, and extract
      for file format version 0.

2 months agoWIP white/black-list: Add helper fns and tests
Stephen Seo [Mon, 17 Feb 2025 04:13:20 +0000 (13:13 +0900)]
WIP white/black-list: Add helper fns and tests

2 months agoWIP white/black-list: Setup args in parser
Stephen Seo [Mon, 17 Feb 2025 03:33:43 +0000 (12:33 +0900)]
WIP white/black-list: Setup args in parser

2 months agoMerge branch 'dev', Version 1.15 1.15
Stephen Seo [Mon, 17 Feb 2025 02:56:04 +0000 (11:56 +0900)]
Merge branch 'dev', Version 1.15

2 months agoVersion 1.15
Stephen Seo [Mon, 17 Feb 2025 02:54:11 +0000 (11:54 +0900)]
Version 1.15

2 months agoAdd notice when forcing dir permissions
Stephen Seo [Mon, 17 Feb 2025 02:53:46 +0000 (11:53 +0900)]
Add notice when forcing dir permissions

2 months agoAdd newline before printed usage text
Stephen Seo [Mon, 17 Feb 2025 02:46:44 +0000 (11:46 +0900)]
Add newline before printed usage text

2 months agoUpdate Changelog.md
Stephen Seo [Thu, 13 Feb 2025 01:15:00 +0000 (10:15 +0900)]
Update Changelog.md

2 months agoForce empty-dir perms only on "force-empty" flag
Stephen Seo [Wed, 12 Feb 2025 10:05:46 +0000 (19:05 +0900)]
Force empty-dir perms only on "force-empty" flag

Previous behavior used the `--force-dir-permissions <octals>` flag to
set the archive-creation-empty-dirs permissions.

This commit changes this to check `--force-empty-dir-permissions
<octals>` instead.

Only applicable to file format versions 2 and 3.

2 months agoUpdate README.md
Stephen Seo [Wed, 12 Feb 2025 05:56:46 +0000 (14:56 +0900)]
Update README.md

2 months agoUpdate Changelog.md
Stephen Seo [Wed, 12 Feb 2025 05:53:54 +0000 (14:53 +0900)]
Update Changelog.md

2 months agoAdd flag to force-set permissions for empty dirs
Stephen Seo [Wed, 12 Feb 2025 05:52:47 +0000 (14:52 +0900)]
Add flag to force-set permissions for empty dirs

Note this only affects file format versions 2 and 3.

2 months agoRefactorings (handling some TODOs)
Stephen Seo [Mon, 10 Feb 2025 06:17:21 +0000 (15:17 +0900)]
Refactorings (handling some TODOs)

2 months agoMinor fix: remove unnecessary comment
Stephen Seo [Mon, 10 Feb 2025 06:09:02 +0000 (15:09 +0900)]
Minor fix: remove unnecessary comment

2 months agoAdd unit test for helper string-parts
Stephen Seo [Thu, 6 Feb 2025 05:09:07 +0000 (14:09 +0900)]
Add unit test for helper string-parts

2 months agoRefactoring
Stephen Seo [Thu, 6 Feb 2025 05:03:23 +0000 (14:03 +0900)]
Refactoring

Formalize "string_parts" into a helper struct/fns for use in archiver.c.

2 months agoVersion 1.14 1.14
Stephen Seo [Tue, 4 Feb 2025 07:18:09 +0000 (16:18 +0900)]
Version 1.14

2 months agoFix not setting dir permissions on extract
Stephen Seo [Tue, 4 Feb 2025 07:11:12 +0000 (16:11 +0900)]
Fix not setting dir permissions on extract

Expected behavior is for simplearchiver to set the directory permissions
after an empty directory is created.

Fixes the previous behavior where the default-permissions or
forced-permissions were used instead.

2 months agoUpdate Version 1.13 1.13
Stephen Seo [Mon, 3 Feb 2025 07:46:23 +0000 (16:46 +0900)]
Update Version 1.13

2 months agoStricter directory permissions on dir creation
Stephen Seo [Mon, 3 Feb 2025 07:43:33 +0000 (16:43 +0900)]
Stricter directory permissions on dir creation

Directory default permission settings changed (for on dir creation).

Previous impl used:    rwxrwxr-x
Current impl now uses: rwxr-xr-x

2 months agoCMakeLists.txt: Replace IS_EXECUTABLE with EXISTS
Stephen Seo [Tue, 28 Jan 2025 05:26:21 +0000 (14:26 +0900)]
CMakeLists.txt: Replace IS_EXECUTABLE with EXISTS

IS_EXECUTABLE does not exist in older versions of cmake.

2 months agoUpdate CMakeLists.txt to fix version when no .git
Stephen Seo [Tue, 28 Jan 2025 05:21:55 +0000 (14:21 +0900)]
Update CMakeLists.txt to fix version when no .git

If building from extracted archive instead of git clone, defer version
to builtin.

2 months agoMerge branch 'dev', Version 1.12 1.12
Stephen Seo [Tue, 28 Jan 2025 03:57:00 +0000 (12:57 +0900)]
Merge branch 'dev', Version 1.12

2 months agoVersion 1.12, Update Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:56:05 +0000 (12:56 +0900)]
Version 1.12, Update Changelog.md

2 months agoUpdate README.md
Stephen Seo [Tue, 28 Jan 2025 03:41:46 +0000 (12:41 +0900)]
Update README.md

2 months agoSet version.h to have a default version string
Stephen Seo [Tue, 28 Jan 2025 03:39:00 +0000 (12:39 +0900)]
Set version.h to have a default version string

2 months agoUpdate LICENSE year in sources
Stephen Seo [Tue, 28 Jan 2025 03:24:02 +0000 (12:24 +0900)]
Update LICENSE year in sources

2 months agoUpdate LICENSE year in sources
Stephen Seo [Tue, 28 Jan 2025 03:24:02 +0000 (12:24 +0900)]
Update LICENSE year in sources

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:18:40 +0000 (12:18 +0900)]
Update Changelog.md

2 months agoUpdate Changelog.md
Stephen Seo [Tue, 28 Jan 2025 03:18:40 +0000 (12:18 +0900)]
Update Changelog.md

2 months agoImpl "--version"
Stephen Seo [Tue, 28 Jan 2025 03:18:06 +0000 (12:18 +0900)]
Impl "--version"

2 months agoUpdate Changelog.md
Stephen Seo [Mon, 27 Jan 2025 11:31:13 +0000 (20:31 +0900)]
Update Changelog.md