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

DateCommit messageAuthorFiles+-
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
2019-04-13 02:11date: Fix default format stringRichard Ipsum1+1-1
2019-02-22 22:26sort: Use regular `double` for -nMichael Forney1+3-3
2018-11-20 22:33Fix typoStephen Gregoratto1+1-1
2018-07-02 07:42On glibc, include sysmacros.h directlyDavid Phillips2+7-0
2018-09-26 00:57find: Make -H and -L flag handling clearerMichael Forney1+10-3
2018-07-11 18:53uname: check that no operands are specifiedMattias Andrée1+3-0
2018-09-22 10:30ed: Changed delimiter to fix unterminated TODO commentFiras Khalil Khana1+1-1
2018-09-20 08:49ed: Add more bugs to TODORoberto E. Vargas Caballero1+10-0
2018-07-07 07:26tty: fix exit value on error from 1 to 2Mattias Andrée1+3-2
2018-07-06 21:19dirname: support --Mattias Andrée1+4-1
2018-07-06 21:19basename: support --Mattias Andrée1+4-1
2018-03-06 13:38Simplify expression in makeline()Roberto E. Vargas Caballero1+4-2
2018-03-04 19:17Add TODORoberto E. Vargas Caballero1+21-0
2018-03-04 19:16Fix undoRoberto E. Vargas Caballero1+17-4
2018-03-04 16:10Use nextln() in scroll()Roberto E. Vargas Caballero1+10-4
2018-03-04 16:10Improve doglobal()Roberto E. Vargas Caballero1+18-12
2018-03-04 16:08Fix copy()Roberto E. Vargas Caballero1+8-3
2018-03-04 15:08Allow overlapping transferRoberto E. Vargas Caballero1+10-8
2018-03-04 14:15Rename addchar_() to addchar()Roberto E. Vargas Caballero1+24-39
2018-03-04 13:06Move subline() to use String typeRoberto E. Vargas Caballero1+15-16
2018-03-04 13:56Fix type of c in getrhs()Roberto E. Vargas Caballero1+10-11
2018-03-04 13:56Fix type of c in execsh()Roberto E. Vargas Caballero1+2-2
More commits remaining [...]