suckless unix tools
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2019-05-20 08:36cmp: Make output of error message POSIX compliantRichard Ipsum1+1-1
2022-03-23 13:39libutf: add some const'sDavid Demelier8+25-25
2023-04-13 04:20libutf: Update to unicode 15.0.0Michael Forney4+295-68
2021-08-11 15:47refer to re_format(7) for BSDsGreg Reagle2+6-3
2022-03-06 12:14cp: don't abort when src and dest file are the sameArthur Williams1+2-1
2023-01-24 23:44sort.1: fix typoAndrea Calligaris1+1-1
2023-02-08 16:35ed: Fix 'w' command not respecting '-s' optionAndrea Calligaris1+2-1
2023-04-13 03:13dd: Consider block count in inner read loopMichael Forney1+5-1
2022-12-04 08:32dd: Fix backwards comparison when handling short writesMichael Forney1+1-1
2022-10-20 03:29find: insert -a in before open parens as wellMichael Forney1+2-1
2022-06-20 10:39setsid: fix usage information for -f flagHiltjo Posthuma1+1-1
2022-03-23 00:14Fix LICENSE nameMichael Forney1+1-1
2021-09-04 00:08nohup: Open nohup.out WRONLYArthur Williams1+1-1
2021-09-11 05:45find: Flush stdout before executing commandsMichael Forney1+5-0
2021-09-11 05:43find: Add spawn helper functionMichael Forney1+30-40
2021-07-30 19:18mv: Move on to other files if rename fails with something other than EXDEVMichael Forney1+4-3
2021-07-30 18:23mv: Only remove source if copy succeededMichael Forney1+7-2
2021-07-30 18:43mv: Prevent successful rename from forgetting past failureMichael Forney1+1-1
2021-07-25 12:24printf: allow flags for the %s format string aswellHiltjo Posthuma1+5-1
2021-07-17 19:04tar: check if allocation failedHiltjo Posthuma1+2-2
2021-06-18 02:09README: Add dd(1) to tool listMichael Forney1+1-0
2021-04-28 08:41dd: Always move excess to beginning of buffer after read/write loopsMichael Forney1+3-4
2021-01-15 05:45strings: Rename `len` to `min`Michael Forney1+10-10
2021-01-15 05:41strings: Print strings that have the minimum lengthMichael Forney1+5-7
2020-10-19 20:41ed: Fix double-freeCág1+2-2
2020-10-09 14:52fold: fix handling of -sRichard Ipsum1+4-2
2020-10-09 14:52fold: fix handling of multibyte charactersRichard Ipsum1+14-8
2020-10-09 14:52fold: don't putchar('\n') if last byte is '\n'Richard Ipsum1+2-1
2020-10-09 14:52fold: fix handling of \b,\rRichard Ipsum1+1-1
2020-10-09 14:52fold: fix tabstop column countRichard Ipsum1+3-1
2020-09-19 02:57TODO: sbase-box does not list `install` in command listMichael Forney1+4-0
2020-09-19 02:51ed: Use fwrite to write lines instead of fputsMichael Forney1+1-1
2020-09-14 22:36ed: Add bytecount print to 'w' commandTait Hoyem2+7-3
2020-07-14 08:15setsid: add optional -f to force fork()Hiltjo Posthuma2+9-3
2020-07-03 11:20remove sbase-box from PHONYCem Keylan1+1-1
2020-06-23 09:11Remove unnecessary initializers of recursor membersMichael Forney7+7-14
2020-06-21 01:21libutil/recurse: Simplify adding trailing slashMichael Forney1+1-1
2020-06-03 11:45du: recurse: fix pathRichard Ipsum1+2-0
2020-05-25 03:58install: Unlink destination file on failureMichael Forney1+13-5
2020-05-25 03:56install: Use fchown to change ownerMichael Forney1+2-4
2020-05-15 09:27nl.1: document pagesRichard Ipsum1+18-1
2020-05-13 02:38find: Fix buffer overflow in token stackMichael Forney1+2-3
2020-04-29 05:22Add implementation of dd(1)Michael Forney4+327-0
2020-04-15 23:13paste: Minor style tweaksMichael Forney1+2-2
2020-04-15 16:46paste: Support -d '\0'Richard Ipsum4+46-14
2020-04-07 08:25libutf: Change return type of utftorunestr to size_tMichael Forney2+4-4
2020-04-06 02:57Add a bugs section to TODOMichael Forney2+48-31
2020-03-02 01:26install: Remove special handling for non-regular filesMichael Forney1+12-60
2019-12-22 19:53*sum: Ignore -b and -t flagsMichael Forney8+32-0
2019-12-22 21:53libutil/recurse: Use a single path buffer, and directory fdMichael Forney10+72-57
2019-11-02 03:43Use *at functions with appropriate flags instead of lstat/lchownMichael Forney4+29-51
2019-12-22 05:47chmod: Remove -HLP flags, and ignore symlinks during traversalMichael Forney2+8-22
2020-03-02 00:55TODO: ed(1) has a man page since 370e0ae675Michael Forney1+0-1
2020-01-29 remove unnecessary use of cat(1)Ethan Sommer1+4-4
2020-03-02 00:38getconf: Add an explicit return at the end of mainMichael Forney1+2-0
2020-03-02 00:30mknod: Add support for making FIFOsMichael Forney2+35-15
2020-03-02 00:13mknod: Use a switch statement for the node typeMichael Forney1+15-4
2020-03-01 23:58Import mknod from ubaseMichael Forney5+88-0
2020-03-01 22:37Fix various lint warnings in manualsMichael Forney44+381-270
2020-02-21 05:41sed: Include filename in error messageMichael Forney1+1-1
2020-02-21 05:39sed: Simplify next_file slightlyMichael Forney1+9-12
2020-02-21 05:24sed: Exit with failure if open failedMichael Forney1+3-1
2020-01-13 08:25sed: Fix typoMichael Forney1+1-1
2020-01-11 10:10install: Fix -d with more than two directoriesMichael Forney1+15-15
2020-01-06 21:08chmod: Implement X perm symbolMichael Forney3+11-5
2020-01-03 23:32sort: Don't do fallback top-level sort in check modeMichael Forney1+2-1
2020-01-01 20:16sort: Consider end field in keydef when additional fields are presentMichael Forney1+3-4
2019-12-31 21:41ed: Use reallocarrayMichael Forney1+1-1
2019-12-31 21:39libutil/getlines: Use reallocarrayMichael Forney1+1-1
2019-12-31 19:51sort: Fix string length update mathRichard Ipsum1+1-1
2019-12-29 06:35libutil/recurse: Use while-loop instead of for-loop with only conditionMichael Forney1+1-1
2019-12-22 05:08cp: Default to -P when -R is specifiedMichael Forney3+8-2
2019-12-22 04:19wc: Removing output paddingMichael Forney1+5-5
2019-11-02 21:01wc: Remove unnecessary precision specifier in format stringsMichael Forney1+3-3
2019-11-02 19:59wc: Set flag defaults if none were specifiedMichael Forney1+10-5
2019-11-02 03:45libutil/recurse: Remove some unnecessary parenthesesMichael Forney1+4-4
2019-11-02 02:07libutil/mode: Remove unnecessary octal-to-mode conversionMichael Forney1+1-14
2019-11-02 02:03chgrp: Pass -1 as the owner ID to chown(3)Michael Forney1+1-1
2019-11-01 08:58chmod: Clear the S_IFMT bits before calling chmodMichael Forney1+1-1
2019-11-01 01:07yes: Simplify, only support one argumentMichael Forney2+8-11
2019-08-05 17:13ls, tar: Guard inclusion of sys/sysmacros.h by absence of `major` definitionMichael Forney2+2-2
2019-07-27 20:29which: check AT_EACCESSMattias Andrée1+1-1
2019-07-27 20:29which: remove unnecessary third parameter in O_RDONLY call to open(3)Mattias Andrée1+1-1
2019-07-04 21:49chgrp: parse gid if operand is not group nameRichard Ipsum1+4-4
2019-07-03 16:32chown/chgrp: chown target not symlink by defaultRichard Ipsum2+2-2
2019-06-30 20:17Don't justify text in READMEMichael Forney1+14-14
2019-06-30 20:13Move utility status to its own section at the end of READMEMichael Forney1+31-28
2019-06-30 01:39Remove unnecessary ';' after ARGENDMichael Forney2+2-2
2019-06-28 07:18Revert "Do not use arg.h for tools which take no flags"Michael Forney13+70-13
2019-06-13 20:52Add .gitignoreMichael Forney2+103-1
2019-06-13 20:45mkfifo: Simplify -m handlingMichael Forney1+4-12
2019-06-13 20:07sed: Print better error message when open failsMichael Forney1+11-6
2019-06-09 17:39mkfifo: Set initial modeRichard Ipsum1+1-1
2019-05-20 07:13libutil: Rename functions in reserved namespace to prevent potential conflictMichael Forney1+6-0
2019-05-20 16:21grep: Fix exit status on use of -lRichard Ipsum1+1-1
2019-04-28 20:26cal: Centre month and year above calendarRichard Ipsum1+9-6
2019-04-22 22:35cal: Fix grid alignment for years < 1000Richard Ipsum1+1-1
2019-04-17 00:44expr: Allocate arrays with reallocarray instead of VLAMichael Forney1+4-2
2019-04-17 00:41libutil: Add enreallocarrayMichael Forney2+8-1
2019-04-17 00:27libutf: Adjust runelen prototype to match definitionMichael Forney1+1-1
1852 more commits remaining, fetch the repository