| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This allows us to wrap the code to 80 columns while still remaining
rather readable.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Add default value for tabsize, fix usage of width where it should have
tabsize, fix optarg string, limit tabsize to being non-negative only.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
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
|