| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
| |
[dgit (4.3) quilt-fixup]
|
|
|
|
| |
This reverts commit 39b48232f24a32481cd68b4482ed0ec24ea40220.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
[dgit (4.3) quilt-fixup]
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Foremost this release finally includes a fix for the little mistake I made in
the Makefile regarding the order of arguments passed to cc which package
managers had to fix with a small patch. It now also compiles on OpenBSD
without problems.
Apart from that, I made error reporting much more consistent by putting
everything into util.c, which makes the code much more readable, and
cleared up all LICENSE matters and minor details in the build system.
At this point, farbfeld is very stable and unless another tool is added
the codebase in general is very low on the Kelvin scale right now.
Thanks for all the feedback!
|
| |
| |
| |
| |
| |
| | |
To fully centralize this matter these well-tested functions are added to
the util.c, and implemented as we know it from many other suckless
projects.
|
| |
| |
| |
| | |
This is to display that all the manuals still reflect the current state.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Given we have a util.c anyway it does not make any sense to duplicate
code here. This way, error handling and output is in one place and one
does not have to change things in multiple different files. This also
reduces code duplication by a lot.
It also solves an older bug where the error reporting was not on point:
$ echo "farb" | ff2png
ff2png: fread: Success
(It also lacked a newline)
Now it properly reports
$ echo "farb" | ff2png
ff2png: fread: Unexpected end of file
I also fixed some other minor details, for instance that all error
messages should begin with a capital letter.
|
| |
| |
| |
| | |
http://www.pathname.com/fhs/2.2/fhs-4.11.html
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thanks Michael Forney for reporting this! We cannot use identifiers
beginning with an underscore, says the C99-standard, section 7.1.3:
"All identifiers that begin with an underscore are always reserved for
use as identifiers with file scope in both the ordinary and tag name
spaces."
We go around this by putting the underscore at the end.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The (c)-symbol has become more of a remnant after the Berne convention
has been signed. Given the ISC exploits some simplifications introduced
with the Berne convention, it just makes sense to drop this relict as
well and just state our Copyright without much ado about nothing.
https://opensource.org/licenses/ISC
|
| |
| |
| |
| | |
You never know...
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The C99 standard explicitly allows to modify argc, argv, but leaves it
open what happens if you modify the content of argv. Under OpenBSD, this
actually has an effect on how the program is listed (e.g. in ps). To
prevent this, we just add a counter variable and use that for iteration.
While at it, this commit also includes a few style changes.
Thanks Hiltjo for reporting this!
|
| |
| |
| |
| | |
We do not really parse anything, we just use/devour something.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We use some OpenBSD code in util.c (namely by Ted Unangst, Todd C.
Miller and Otto Moerbeek), which is licensed under the ISC license.
To make it clearer and make it easier to see what farbfeld really is licensed
under, we include these authors in the LICENSE file and remove the
explicit headers from util.c. While at it, we also remove superfluous
includes and shove them to the top.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, we would return argc as -1, which could cause some problems.
This was not an issue introduced in the rewrite and is a bug present in
the "old" arg.h as well.
Thanks Isabella Parakiss for reporting this!
|
| |
| |
| |
| |
| | |
We decrement argc first before incrementing argv, so we never have a
state where we potentially point to uncharted territory.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was something I wanted to do for quite a while now.
The problem with the old arg.h is that it does not allow you to call ARGF() and
EARGF() multiple times without messing the argument up. This is an
unnecessary limitation and can lead to unexpected results for people not
aware of this problem.
ARGBEGIN {
case 'a':
printf("1st call: %s\n", ARGF());
printf("2nd call: %s\n", ARGF());
break;
default:
break;
}
$ prog -a ARG
1st call: ARG
2nd call: RG
This is fixed now to properly print
$ prog -a ARG
1st call: ARG
2nd call: ARG
The old version also used more local variables than necessary, as the
problem can be reduced to one single local variable within the second
loop, which expresses if the argument has been consumed or not.
The use of abort() within EARGF() was a bit drastic. exit(1) should
suffice here and align with what you expect from an e*-type function.
Additionally, the formatting I used should make readability easier and
the code deduplication in the *ARGF()-macros helps with maintainability.
The license used is ISC, which is compatible with MIT/X, GPL and so forth in
case you want to use it in your project. I explicitly added the license header
to the file making it easy to just drop it in.
There are no plans to support the obsolete ARGNUM, ARGNUMF, LNGARG syntaxes.
|
| |
| |
| |
| |
| |
| | |
Reading the standard thoroughly revealed that the only way to really
get a portable Makefile is to list each target explicitly, so that's
what we'll do now here.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thanks Hiltjo for reporting this!
For some reason, OpenBSD make does not add $(BIN).o to the dependency list
when it sees the $(BIN) target rule. It does so however when it does the
conversion from .c to .o.
This behaviour is unique for OpenBSD make as far as I've seen, and for
the time being, this workaround will manually add the object to the
dependency list.
This is not POSIX compliant and in GNU make it just evaluates to an
empty string, but it works until this has been investigated further.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The tool-specific flags were LDLIBS and not LDFLAGS, because we specify
the libraries we want to link in, not flags to the linker itself.
The order was broken as it didn't allow -Wl,--as-needed or other things
highly dependent on the order of arguments.
I also wanted to add an explicit .c.o suffix rule. This way, it is
clearer what is happening in the Makefile and the form of compilation
output is controllable.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Of course, you want the libraries to come last in order of execution.
Additionally, in case the libraries provided with $($*-LDFLAGS) contain
unresolved symbols, we want to give the opportunity for the user to
provide the necessary general symbols, whatever they may be, last.
Thanks Duncaen for reporting this!
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|