aboutsummaryrefslogtreecommitdiff
path: root/center.c
Commit message (Collapse)AuthorAgeFilesLines
* Use constants instead of macrosv1.3.0Thomas Voss 2022-11-131-5/+4
|
* Add support for long optionsThomas Voss 2022-11-131-2/+12
|
* Centering was off by 1, lolv1.2.0Thomas Voss 2022-11-101-1/+1
|
* Move the flags in the usage string to PROG_ARGSThomas Voss 2022-11-041-5/+2
| | | | | This allows us to wrap the code to 80 columns while still remaining rather readable.
* Properly handle backspace charactersv1.1.0Thomas Voss 2022-10-151-2/+2
|
* Remove POSIXLY_CORRECT and use -D in CFLAGSThomas Voss 2022-10-151-3/+0
|
* Get screen width initially from 205Thomas Voss 2022-10-151-18/+26
|
* Fix diagnostic message during overflowThomas Voss 2022-10-151-1/+1
|
* Define the die() and diex() macrosThomas Voss 2022-10-151-4/+7
|
* Sort flags alphabeticallyThomas Voss 2022-10-151-3/+3
|
* Move long parsing to its own functionv1.0.0Thomas Voss 2022-10-091-19/+22
|
* Add the -r flag to print tabs using spacessheepmax 2022-10-081-28/+63
| | | | | | | | If the -r flag is provided, then tabs will be displayed by printing a space character `tabwidth' times. With this commit TODO item #2 is complete. Co-authored-by: Thomas Voss <mail@thomasvoss.com>
* De-verbosify usageThomas Voss 2022-10-081-1/+1
|
* Wrap code to 80 columnsThomas Voss 2022-10-051-11/+21
| | | | | | With my new laptop setup and stuff, 80 characters is about half of the screen; wrapping code to 80 columns allows me to have two terminals in a split screen while viewing all the code.
* Sort command-line flagsThomas Voss 2022-10-051-12/+12
|
* Add tab width specification (#5)nothing-c 2022-10-051-3/+13
| | | | | Add default value for tabsize, fix usage of width where it should have tabsize, fix optarg string, limit tabsize to being non-negative only.
* Remove excess parensThomas Voss 2022-10-041-1/+1
|
* Fix bug when width is less than line lengthThomas Voss 2022-10-041-3/+3
| | | | | | If the length of a line is longer than the width of the display we want to center on, `width - len` becomes negative which causes an infinite loop of printing spaces. This fixes that bug.
* Add centering by longest line (#3)Casper Andersson 2022-10-041-3/+73
| | | | | | | | | | Centering by longest line requires inputting all lines before starting output, to determine which is longest. Use a tail queue for this to insert at end and then iterate from start. The lines are freed after being output. Unlike the static read buffer, we can't reuse the list buffers in an easy way if we are iterating over multiple input files. So they need to be freed to avoid memory leaks.
* Remove unused flags from call to getopt()Thomas Voss 2022-10-031-1/+1
|
* Make buffer and size static to avoid memory leakCasper Andersson 2022-10-011-2/+2
| | | | | | | getline() allocates/reallocates memory dynamically. When center() is called repeatedly it would leak memory. Make them static so the same memory is reallocated all the time, and none is lost. No need to free manually, let the OS take care of that.
* Fix centering with ANSI escapesThomas Voss 2022-09-231-1/+1
| | | | | | This was broken with the logic change in #68f7fb9 I think. At the very least it’s that commit after which I noticed this bug. Doesn’t matter though, it’s fixed now.
* Fix text centering of multibyte charactersThomas Voss 2022-09-231-2/+7
|
* Add license textThomas Voss 2022-09-201-0/+17
|
* Fix usage stringThomas Voss 2022-08-091-1/+1
|
* Don't exit when fopen(3) returns NULLThomas Voss 2022-02-081-4/+7
| | | | | | | | On failure to open a file the program should print a diagnostic message to the standard error and move on to the next file as opposed to exiting immediately. This allows for consistent behavior compared to other common implementations of utilities such as cat(1) which reduces potential confusion for the user.
* Initial commitThomas Voss 2022-02-081-0/+163
This initial commit includes the following: - A gitignore file - A license (0-Clause BSD) - A Makefile supporting installation - A manual page written in mdoc(7) - A fully working initial implementation