<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="
http://www.w3.org/2005/Atom">
<title>farbfeld, branch HEAD</title>
<subtitle>suckless image format with conversion tools
</subtitle>
<entry>
<id>03f1f1f7adfd656f59de2b75ac74e0139931333d</id>
<published>2018-07-16T09:47:47Z</published>
<updated>2018-07-16T09:47:47Z</updated>
<title type="text">Correct arg.h license</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/03f1f1f7adfd656f59de2b75ac74e0139931333d.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 03f1f1f7adfd656f59de2b75ac74e0139931333d
parent ab5e3dfc9cdb476218538c6687df9f44826d8f11
Author: Laslo Hunhold <
[email protected]>
Date: Mon, 16 Jul 2018 11:47:47 +0200
Correct arg.h license
Credit where credit is due.
</content>
</entry>
<entry>
<id>ab5e3dfc9cdb476218538c6687df9f44826d8f11</id>
<published>2018-04-11T10:10:03Z</published>
<updated>2018-04-11T10:51:47Z</updated>
<title type="text">Bump version to 4</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/ab5e3dfc9cdb476218538c6687df9f44826d8f11.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit ab5e3dfc9cdb476218538c6687df9f44826d8f11
parent d9c382a9d873c8758f518c6aa7e6c32cf3ea7b89
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 11 Apr 2018 12:10:03 +0200
Bump version to 4
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!
</content>
</entry>
<entry>
<id>d9c382a9d873c8758f518c6aa7e6c32cf3ea7b89</id>
<published>2018-04-11T10:48:50Z</published>
<updated>2018-04-11T10:48:50Z</updated>
<title type="text">Add warn() and die()</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/d9c382a9d873c8758f518c6aa7e6c32cf3ea7b89.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit d9c382a9d873c8758f518c6aa7e6c32cf3ea7b89
parent a2e07745e6e31231dd59bd1d4a3415a5f4042d0c
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 11 Apr 2018 12:48:50 +0200
Add warn() and die()
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.
</content>
</entry>
<entry>
<id>a2e07745e6e31231dd59bd1d4a3415a5f4042d0c</id>
<published>2018-04-11T10:06:36Z</published>
<updated>2018-04-11T10:06:36Z</updated>
<title type="text">Update manuals and LICENSE</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/a2e07745e6e31231dd59bd1d4a3415a5f4042d0c.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit a2e07745e6e31231dd59bd1d4a3415a5f4042d0c
parent 02b051634969f701ccee57505140c9e7f334e22c
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 11 Apr 2018 12:06:36 +0200
Update manuals and LICENSE
This is to display that all the manuals still reflect the current state.
</content>
</entry>
<entry>
<id>02b051634969f701ccee57505140c9e7f334e22c</id>
<published>2018-04-11T09:51:01Z</published>
<updated>2018-04-11T09:51:01Z</updated>
<title type="text">Add efread() and efwrite()</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/02b051634969f701ccee57505140c9e7f334e22c.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 02b051634969f701ccee57505140c9e7f334e22c
parent a9877de22960f14fb16e862cf46290a477779e98
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 11 Apr 2018 11:51:01 +0200
Add efread() and efwrite()
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.
</content>
</entry>
<entry>
<id>a9877de22960f14fb16e862cf46290a477779e98</id>
<published>2017-08-13T21:29:30Z</published>
<updated>2017-08-13T21:29:30Z</updated>
<title type="text">Update MANPREFIX according to FHS</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/a9877de22960f14fb16e862cf46290a477779e98.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit a9877de22960f14fb16e862cf46290a477779e98
parent 0af2542eeb1b579af1a465279fe9a5d9a53c80e0
Author: Laslo Hunhold <
[email protected]>
Date: Sun, 13 Aug 2017 23:29:30 +0200
Update MANPREFIX according to FHS
http://www.pathname.com/fhs/2.2/fhs-4.11.html
</content>
</entry>
<entry>
<id>0af2542eeb1b579af1a465279fe9a5d9a53c80e0</id>
<published>2017-08-04T15:53:43Z</published>
<updated>2017-08-04T15:53:43Z</updated>
<title type="text">Rename _i,_argused to i_,argused_</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/0af2542eeb1b579af1a465279fe9a5d9a53c80e0.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 0af2542eeb1b579af1a465279fe9a5d9a53c80e0
parent 191ea09f29ff2d450e7622c7f4d80b0c60232219
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 17:53:43 +0200
Rename _i,_argused to i_,argused_
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.
</content>
</entry>
<entry>
<id>191ea09f29ff2d450e7622c7f4d80b0c60232219</id>
<published>2017-08-04T15:05:43Z</published>
<updated>2017-08-04T15:05:43Z</updated>
<title type="text">arg.h: Small style change</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/191ea09f29ff2d450e7622c7f4d80b0c60232219.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 191ea09f29ff2d450e7622c7f4d80b0c60232219
parent 9dfe9996660ea603a6c2d418ac9a68326456107d
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 17:05:43 +0200
arg.h: Small style change
</content>
</entry>
<entry>
<id>9dfe9996660ea603a6c2d418ac9a68326456107d</id>
<published>2017-08-04T15:02:57Z</published>
<updated>2017-08-04T15:02:57Z</updated>
<title type="text">arg.h: Reformat warranty clause in line with template</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/9dfe9996660ea603a6c2d418ac9a68326456107d.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 9dfe9996660ea603a6c2d418ac9a68326456107d
parent cbd8274cbd2e5ed6ec26425bfb0fb3cf45aafbc5
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 17:02:57 +0200
arg.h: Reformat warranty clause in line with template
</content>
</entry>
<entry>
<id>cbd8274cbd2e5ed6ec26425bfb0fb3cf45aafbc5</id>
<published>2017-08-04T14:35:41Z</published>
<updated>2017-08-04T14:55:12Z</updated>
<title type="text">Change the license formatting a bit to be in line with the OSI</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/cbd8274cbd2e5ed6ec26425bfb0fb3cf45aafbc5.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit cbd8274cbd2e5ed6ec26425bfb0fb3cf45aafbc5
parent 4e3c389ffa26127c756139c77d8ab91d1ee57156
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 16:35:41 +0200
Change the license formatting a bit to be in line with the OSI
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
</content>
</entry>
<entry>
<id>4e3c389ffa26127c756139c77d8ab91d1ee57156</id>
<published>2017-08-04T14:15:52Z</published>
<updated>2017-08-04T14:15:52Z</updated>
<title type="text">arg.h: Fortify ARGC()</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/4e3c389ffa26127c756139c77d8ab91d1ee57156.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 4e3c389ffa26127c756139c77d8ab91d1ee57156
parent 959b70ab5a7f7801f7047b9d513671cd95500488
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 16:15:52 +0200
arg.h: Fortify ARGC()
You never know...
</content>
</entry>
<entry>
<id>959b70ab5a7f7801f7047b9d513671cd95500488</id>
<published>2017-08-04T14:11:12Z</published>
<updated>2017-08-04T14:11:12Z</updated>
<title type="text">arg.h: Refactor ARGF_()</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/959b70ab5a7f7801f7047b9d513671cd95500488.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 959b70ab5a7f7801f7047b9d513671cd95500488
parent 26c092599447284fe85e11d322daf034ca96eeb3
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 16:11:12 +0200
arg.h: Refactor ARGF_()
</content>
</entry>
<entry>
<id>26c092599447284fe85e11d322daf034ca96eeb3</id>
<published>2017-08-04T13:59:29Z</published>
<updated>2017-08-04T14:01:50Z</updated>
<title type="text">arg.h: Do not modify the array elements of argv[]</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/26c092599447284fe85e11d322daf034ca96eeb3.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 26c092599447284fe85e11d322daf034ca96eeb3
parent 315e95cfadbb68028e20eebd7627e912fff4a1c2
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 15:59:29 +0200
arg.h: Do not modify the array elements of argv[]
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!
</content>
</entry>
<entry>
<id>315e95cfadbb68028e20eebd7627e912fff4a1c2</id>
<published>2017-08-04T13:42:01Z</published>
<updated>2017-08-04T13:42:01Z</updated>
<title type="text">arg.h: Rename argparsed to argused</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/315e95cfadbb68028e20eebd7627e912fff4a1c2.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 315e95cfadbb68028e20eebd7627e912fff4a1c2
parent 8a993db22b18c8fab9d326fe730d96c9d86fb340
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 4 Aug 2017 15:42:01 +0200
arg.h: Rename argparsed to argused
We do not really parse anything, we just use/devour something.
</content>
</entry>
<entry>
<id>8a993db22b18c8fab9d326fe730d96c9d86fb340</id>
<published>2017-08-02T19:49:43Z</published>
<updated>2017-08-02T19:49:43Z</updated>
<title type="text">Remove dangling newlines in LICENSE</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/8a993db22b18c8fab9d326fe730d96c9d86fb340.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 8a993db22b18c8fab9d326fe730d96c9d86fb340
parent 9e0a561d7453d4f92051496314e4edcc06a97ae5
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 21:49:43 +0200
Remove dangling newlines in LICENSE
</content>
</entry>
<entry>
<id>9e0a561d7453d4f92051496314e4edcc06a97ae5</id>
<published>2017-08-02T19:46:54Z</published>
<updated>2017-08-02T19:46:54Z</updated>
<title type="text">Combine all license matters in LICENSE</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/9e0a561d7453d4f92051496314e4edcc06a97ae5.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 9e0a561d7453d4f92051496314e4edcc06a97ae5
parent f0f85f1a0cfcd6d501aee848238913a4fd1e0606
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 21:46:54 +0200
Combine all license matters in LICENSE
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.
</content>
</entry>
<entry>
<id>f0f85f1a0cfcd6d501aee848238913a4fd1e0606</id>
<published>2017-08-02T19:19:05Z</published>
<updated>2017-08-02T19:19:05Z</updated>
<title type="text">FORMAT: make it a proper table with Unicode-boundary-glyphs</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/f0f85f1a0cfcd6d501aee848238913a4fd1e0606.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit f0f85f1a0cfcd6d501aee848238913a4fd1e0606
parent c6d036bf168f1c196f803fc46a65ad8f4c07c81c
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 21:19:05 +0200
FORMAT: make it a proper table with Unicode-boundary-glyphs
</content>
</entry>
<entry>
<id>c6d036bf168f1c196f803fc46a65ad8f4c07c81c</id>
<published>2017-08-02T11:49:01Z</published>
<updated>2017-08-02T11:49:01Z</updated>
<title type="text">config.mk: small style change</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/c6d036bf168f1c196f803fc46a65ad8f4c07c81c.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit c6d036bf168f1c196f803fc46a65ad8f4c07c81c
parent bb8c945c0481123fc4082aa1cbd4f23efa683033
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 13:49:01 +0200
config.mk: small style change
</content>
</entry>
<entry>
<id>bb8c945c0481123fc4082aa1cbd4f23efa683033</id>
<published>2017-08-02T11:44:02Z</published>
<updated>2017-08-02T11:46:00Z</updated>
<title type="text">arg.h: Handle { NULL } argv[] properly</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/bb8c945c0481123fc4082aa1cbd4f23efa683033.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit bb8c945c0481123fc4082aa1cbd4f23efa683033
parent 37e44c95655e252aa7763671f53524dceaf8a65b
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 13:44:02 +0200
arg.h: Handle { NULL } argv[] properly
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!
</content>
</entry>
<entry>
<id>37e44c95655e252aa7763671f53524dceaf8a65b</id>
<published>2017-08-02T06:36:28Z</published>
<updated>2017-08-02T06:36:28Z</updated>
<title type="text">Minor style change in arg.h</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/37e44c95655e252aa7763671f53524dceaf8a65b.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 37e44c95655e252aa7763671f53524dceaf8a65b
parent 31651271e1afd99983fb3d0ec51a273e31aaf4e9
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 2 Aug 2017 08:36:28 +0200
Minor style change in arg.h
We decrement argc first before incrementing argv, so we never have a
state where we potentially point to uncharted territory.
</content>
</entry>
<entry>
<id>31651271e1afd99983fb3d0ec51a273e31aaf4e9</id>
<published>2017-07-27T17:01:16Z</published>
<updated>2017-07-27T17:19:58Z</updated>
<title type="text">Rewrite arg.h</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/31651271e1afd99983fb3d0ec51a273e31aaf4e9.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 31651271e1afd99983fb3d0ec51a273e31aaf4e9
parent 360eccf00a6de6287a3e4c19b59835ff5d4834dd
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 27 Jul 2017 19:01:16 +0200
Rewrite arg.h
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.
</content>
</entry>
<entry>
<id>360eccf00a6de6287a3e4c19b59835ff5d4834dd</id>
<published>2017-05-30T20:25:17Z</published>
<updated>2017-05-30T20:25:17Z</updated>
<title type="text">Makefile - expand targets for portability</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/360eccf00a6de6287a3e4c19b59835ff5d4834dd.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 360eccf00a6de6287a3e4c19b59835ff5d4834dd
parent bfb27d1baad6f69fa610281809a394617a76e60a
Author: Laslo Hunhold <
[email protected]>
Date: Tue, 30 May 2017 22:25:17 +0200
Makefile - expand targets for portability
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.
</content>
</entry>
<entry>
<id>bfb27d1baad6f69fa610281809a394617a76e60a</id>
<published>2017-05-29T16:29:00Z</published>
<updated>2017-05-29T16:29:00Z</updated>
<title type="text">Makefile-workaround for OpenBSD</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/bfb27d1baad6f69fa610281809a394617a76e60a.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit bfb27d1baad6f69fa610281809a394617a76e60a
parent 031b208cb24addbe4496eb24da6887b43a54f5e1
Author: Laslo Hunhold <
[email protected]>
Date: Mon, 29 May 2017 18:29:00 +0200
Makefile-workaround for OpenBSD
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.
</content>
</entry>
<entry>
<id>031b208cb24addbe4496eb24da6887b43a54f5e1</id>
<published>2017-05-01T18:29:25Z</published>
<updated>2017-05-01T18:29:25Z</updated>
<title type="text">Rename TOOL-LDFLAGS to TOOL-LDLIBS, fix order and add explicit .c.o</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/031b208cb24addbe4496eb24da6887b43a54f5e1.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 031b208cb24addbe4496eb24da6887b43a54f5e1
parent 64083809662501469ce77027b7a60001e88d39f4
Author: Laslo Hunhold <
[email protected]>
Date: Mon, 1 May 2017 20:29:25 +0200
Rename TOOL-LDFLAGS to TOOL-LDLIBS, fix order and add explicit .c.o
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.
</content>
</entry>
<entry>
<id>64083809662501469ce77027b7a60001e88d39f4</id>
<published>2017-04-16T21:30:43Z</published>
<updated>2017-04-16T21:30:43Z</updated>
<title type="text">Add Alexander and Mattias to LICENSE</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/64083809662501469ce77027b7a60001e88d39f4.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 64083809662501469ce77027b7a60001e88d39f4
parent 80aabad7cb520fd890dfb82d35da30a9300ee439
Author: Laslo Hunhold <
[email protected]>
Date: Sun, 16 Apr 2017 23:30:43 +0200
Add Alexander and Mattias to LICENSE
</content>
</entry>
<entry>
<id>80aabad7cb520fd890dfb82d35da30a9300ee439</id>
<published>2017-04-16T21:22:25Z</published>
<updated>2017-04-16T21:24:43Z</updated>
<title type="text">Bring cc-command-line in order</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/80aabad7cb520fd890dfb82d35da30a9300ee439.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 80aabad7cb520fd890dfb82d35da30a9300ee439
parent 00dd0ab39f634729ec5d99b8057b9cef6fa0f23e
Author: Laslo Hunhold <
[email protected]>
Date: Sun, 16 Apr 2017 23:22:25 +0200
Bring cc-command-line in order
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!
</content>
</entry>
<entry>
<id>00dd0ab39f634729ec5d99b8057b9cef6fa0f23e</id>
<published>2017-04-14T20:53:43Z</published>
<updated>2017-04-14T20:53:43Z</updated>
<title type="text">Bump version to 3</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/00dd0ab39f634729ec5d99b8057b9cef6fa0f23e.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 00dd0ab39f634729ec5d99b8057b9cef6fa0f23e
parent 62b95f7f7b3dc6e9fc6add9a186ff5b4b0ece535
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 22:53:43 +0200
Bump version to 3
This is more or less a refactoring release, but with deep changes in the
tools that I was hoping to look into for a long time.
The codebase is in a very consistent state now, also thanks to the
introduction of a set of common utility-functions.
What really makes me think is the fact that it takes so many iterations
and a high level of detail to get the library handling and I/O right.
It just makes you wonder how much software is out there that is full
of little subtle bugs that might blow up in your face some day.
Thanks for all the feedback!
</content>
</entry>
<entry>
<id>62b95f7f7b3dc6e9fc6add9a186ff5b4b0ece535</id>
<published>2017-04-14T20:39:15Z</published>
<updated>2017-04-14T20:39:15Z</updated>
<title type="text">Improve the wording on alpha-blending</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/62b95f7f7b3dc6e9fc6add9a186ff5b4b0ece535.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 62b95f7f7b3dc6e9fc6add9a186ff5b4b0ece535
parent 4aa840bd871694cca0ae1608eab1086eef7d228b
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 22:39:15 +0200
Improve the wording on alpha-blending
</content>
</entry>
<entry>
<id>4aa840bd871694cca0ae1608eab1086eef7d228b</id>
<published>2017-04-14T20:26:03Z</published>
<updated>2017-04-14T20:26:03Z</updated>
<title type="text">Remove the need of '#' for alpha masks</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/4aa840bd871694cca0ae1608eab1086eef7d228b.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 4aa840bd871694cca0ae1608eab1086eef7d228b
parent a5a5706f16408ce181775d319b264d03e67819f3
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 22:26:03 +0200
Remove the need of '#' for alpha masks
To be honest, it can happen too easily that the user forgets to put
the colour in quotation marks, yielding in the rest of the
pipeline to be discarded as a comment.
</content>
</entry>
<entry>
<id>a5a5706f16408ce181775d319b264d03e67819f3</id>
<published>2017-04-14T20:15:25Z</published>
<updated>2017-04-14T20:15:25Z</updated>
<title type="text">Improve readability of alpha-blending sections</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/a5a5706f16408ce181775d319b264d03e67819f3.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit a5a5706f16408ce181775d319b264d03e67819f3
parent 6afe09e729e3428a5317c57c8315897f7110bffa
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 22:15:25 +0200
Improve readability of alpha-blending sections
</content>
</entry>
<entry>
<id>6afe09e729e3428a5317c57c8315897f7110bffa</id>
<published>2017-04-14T19:54:27Z</published>
<updated>2017-04-14T19:54:27Z</updated>
<title type="text">Move the logo a bit to the left so it is centered</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/6afe09e729e3428a5317c57c8315897f7110bffa.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 6afe09e729e3428a5317c57c8315897f7110bffa
parent c73b142d053818cdafddf5c66cfc2a4f90de7aa1
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 21:54:27 +0200
Move the logo a bit to the left so it is centered
</content>
</entry>
<entry>
<id>c73b142d053818cdafddf5c66cfc2a4f90de7aa1</id>
<published>2017-04-14T19:52:42Z</published>
<updated>2017-04-14T19:52:42Z</updated>
<title type="text">Fix the R in the logo</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/c73b142d053818cdafddf5c66cfc2a4f90de7aa1.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit c73b142d053818cdafddf5c66cfc2a4f90de7aa1
parent f04abc0e2f995e95fda64230a2bd4c289b10d6bf
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 21:52:42 +0200
Fix the R in the logo
</content>
</entry>
<entry>
<id>f04abc0e2f995e95fda64230a2bd4c289b10d6bf</id>
<published>2017-04-14T19:45:32Z</published>
<updated>2017-04-14T19:45:32Z</updated>
<title type="text">Update usage of ff2jpg(1) and ff2ppm(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/f04abc0e2f995e95fda64230a2bd4c289b10d6bf.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit f04abc0e2f995e95fda64230a2bd4c289b10d6bf
parent 9fdfff98f15fb3f7a01d944aba5d75d9d34c66ed
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 21:45:32 +0200
Update usage of ff2jpg(1) and ff2ppm(1)
so they align with the manpages.
</content>
</entry>
<entry>
<id>9fdfff98f15fb3f7a01d944aba5d75d9d34c66ed</id>
<published>2017-04-14T19:40:20Z</published>
<updated>2017-04-14T19:42:43Z</updated>
<title type="text">Refactor invert.c in farbfeld.5</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/9fdfff98f15fb3f7a01d944aba5d75d9d34c66ed.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 9fdfff98f15fb3f7a01d944aba5d75d9d34c66ed
parent 781cec031d8ebc40b36cf06e7c3bf1080745e1d2
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 21:40:20 +0200
Refactor invert.c in farbfeld.5
I noticed that it would be beneficial to release the invert.c code
listing under a very permissive license.
I like the style of the "Copy me if you can"-License, but thought
that 0BSD would make it even clearer that everyone can do whatever
he wants with this code.
The code itself was not bad beforehand, but lacked some elementary
features like checked flushing at the end and proper error messages.
I also reworked the data structures a bit to make it more appealing
and clearer where the "guts" of the code are (i.e. in invert()).
</content>
</entry>
<entry>
<id>781cec031d8ebc40b36cf06e7c3bf1080745e1d2</id>
<published>2017-04-14T18:10:27Z</published>
<updated>2017-04-14T18:10:27Z</updated>
<title type="text">Update the Makefile to reflect TODO has been removed</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/781cec031d8ebc40b36cf06e7c3bf1080745e1d2.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 781cec031d8ebc40b36cf06e7c3bf1080745e1d2
parent 48bd9e1f4c7c4c45957575f68b1ee0cdeba42fd3
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 20:10:27 +0200
Update the Makefile to reflect TODO has been removed
</content>
</entry>
<entry>
<id>48bd9e1f4c7c4c45957575f68b1ee0cdeba42fd3</id>
<published>2017-04-14T18:04:40Z</published>
<updated>2017-04-14T18:04:40Z</updated>
<title type="text">Update and refactor the manpages</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/48bd9e1f4c7c4c45957575f68b1ee0cdeba42fd3.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 48bd9e1f4c7c4c45957575f68b1ee0cdeba42fd3
parent 3d73fbaa1aeab1000d7f77cd6ee21f06a9b02e04
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 20:04:40 +0200
Update and refactor the manpages
Make them more consistent, and only maintain a list of the conversion
tools in farbfeld.5.
Refine the wording on the jpg-manpages.
</content>
</entry>
<entry>
<id>3d73fbaa1aeab1000d7f77cd6ee21f06a9b02e04</id>
<published>2017-04-14T16:21:22Z</published>
<updated>2017-04-14T16:21:22Z</updated>
<title type="text">Update the README</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3d73fbaa1aeab1000d7f77cd6ee21f06a9b02e04.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3d73fbaa1aeab1000d7f77cd6ee21f06a9b02e04
parent 96d6bde7d9bb6a79b7f86fbbc285a49b9634cd63
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 18:21:22 +0200
Update the README
Rework the introductory paragraph and show examples directly afterwards.
If people are interested in the tl;dr-sections, they can then read on.
</content>
</entry>
<entry>
<id>96d6bde7d9bb6a79b7f86fbbc285a49b9634cd63</id>
<published>2017-04-14T15:51:40Z</published>
<updated>2017-04-14T15:51:40Z</updated>
<title type="text">Don't suppress imagemagick and png2ff(1) warnings</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/96d6bde7d9bb6a79b7f86fbbc285a49b9634cd63.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 96d6bde7d9bb6a79b7f86fbbc285a49b9634cd63
parent 1f9d0c28423ae3e422327a8ee5422aac23391231
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 17:51:40 +0200
Don't suppress imagemagick and png2ff(1) warnings
Else the user might be left wondering what happened. The output from
imagemagick might not be the nicest in the world, but it's bearable for
some given edge-cases.
</content>
</entry>
<entry>
<id>1f9d0c28423ae3e422327a8ee5422aac23391231</id>
<published>2017-04-14T15:39:25Z</published>
<updated>2017-04-14T15:39:25Z</updated>
<title type="text">Make comment in ff2jpg(1) more consistent</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/1f9d0c28423ae3e422327a8ee5422aac23391231.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 1f9d0c28423ae3e422327a8ee5422aac23391231
parent 42678350147b13345174f1e4c637a89c442ffd3c
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 17:39:25 +0200
Make comment in ff2jpg(1) more consistent
</content>
</entry>
<entry>
<id>42678350147b13345174f1e4c637a89c442ffd3c</id>
<published>2017-04-14T15:32:12Z</published>
<updated>2017-04-14T15:36:49Z</updated>
<title type="text">Refactor 2ff(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/42678350147b13345174f1e4c637a89c442ffd3c.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 42678350147b13345174f1e4c637a89c442ffd3c
parent 65435b097b355105dc9a32f87ed80427d56b1c91
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 17:32:12 +0200
Refactor 2ff(1)
The Unix philosophy teaches us that tools should strive to output only
necessary diagnostic information and also reflect errors properly with
the return value.
There were three subtle problems with 2ff:
1) If the farbfeld-passthrough failed, it would return 1 instead
of 1.
2) If the first 8 bytes contained a NUL byte, bash would print
an ugly warning message. Passing it through tr -d '\0' fixes
that.
3) Lack of comments. I added some to make the structure even
clearer, also including using an if-else-structure.
I removed the 2ff error message; the tools themselves print proper
messages already.
</content>
</entry>
<entry>
<id>65435b097b355105dc9a32f87ed80427d56b1c91</id>
<published>2017-04-14T14:39:05Z</published>
<updated>2017-04-14T14:39:05Z</updated>
<title type="text">Staticize functions in png2ff(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/65435b097b355105dc9a32f87ed80427d56b1c91.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 65435b097b355105dc9a32f87ed80427d56b1c91
parent 1510ddefc12775143fd05286e92c38d4aed7c3a9
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 16:39:05 +0200
Staticize functions in png2ff(1)
</content>
</entry>
<entry>
<id>1510ddefc12775143fd05286e92c38d4aed7c3a9</id>
<published>2017-04-14T14:21:06Z</published>
<updated>2017-04-14T14:21:06Z</updated>
<title type="text">Remove TODO</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/1510ddefc12775143fd05286e92c38d4aed7c3a9.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 1510ddefc12775143fd05286e92c38d4aed7c3a9
parent 3a701d548362812f9c9b21e960c7abe50989a33e
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 16:21:06 +0200
Remove TODO
It's not very useful for the reader any more.
</content>
</entry>
<entry>
<id>3a701d548362812f9c9b21e960c7abe50989a33e</id>
<published>2017-04-14T14:04:14Z</published>
<updated>2017-04-14T14:04:14Z</updated>
<title type="text">Add PNG-LDFLAGS and JPG-LDFLAGS in config.mk</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3a701d548362812f9c9b21e960c7abe50989a33e.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3a701d548362812f9c9b21e960c7abe50989a33e
parent 17f09e2cea4dda0f54841f7a273e347b53f4996e
Author: Laslo Hunhold <
[email protected]>
Date: Fri, 14 Apr 2017 16:04:14 +0200
Add PNG-LDFLAGS and JPG-LDFLAGS in config.mk
instead of per-tool-settings.
</content>
</entry>
<entry>
<id>17f09e2cea4dda0f54841f7a273e347b53f4996e</id>
<published>2017-04-12T22:07:10Z</published>
<updated>2017-04-12T22:07:10Z</updated>
<title type="text">Use fshut() to properly flush the output stream</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/17f09e2cea4dda0f54841f7a273e347b53f4996e.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 17f09e2cea4dda0f54841f7a273e347b53f4996e
parent bc03439e0e0c439bb9c6c3167d9c272f3b7d5632
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 13 Apr 2017 00:07:10 +0200
Use fshut() to properly flush the output stream
For small images, it could happen that the output stream would not be
flushed before exit(), resulting in a lack of error-reporting on
a full device. Using fflush(), a function I first introduced in sbase,
we do the flushing before returning manually and report errors if they
occurred.
</content>
</entry>
<entry>
<id>bc03439e0e0c439bb9c6c3167d9c272f3b7d5632</id>
<published>2017-04-12T21:48:28Z</published>
<updated>2017-04-12T21:48:28Z</updated>
<title type="text">Update LICENSE</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/bc03439e0e0c439bb9c6c3167d9c272f3b7d5632.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit bc03439e0e0c439bb9c6c3167d9c272f3b7d5632
parent 2eef6816e870074494465346ca2879959faec9da
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:48:28 +0200
Update LICENSE
</content>
</entry>
<entry>
<id>2eef6816e870074494465346ca2879959faec9da</id>
<published>2017-04-12T21:43:31Z</published>
<updated>2017-04-12T21:43:31Z</updated>
<title type="text">Update TODO</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/2eef6816e870074494465346ca2879959faec9da.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 2eef6816e870074494465346ca2879959faec9da
parent 7a11656e9649247179bdae941683b4ac78e22586
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:43:31 +0200
Update TODO
The truncation issue is solved now by checking the return values. Maybe
for small images where the FILE-buffer is not flushed early enough we
can rethink that.
The utility functions were written to the extent it was desired.
I added a note not to forget to take a look at the part in the jpg-code
which does the color mixing.
</content>
</entry>
<entry>
<id>7a11656e9649247179bdae941683b4ac78e22586</id>
<published>2017-04-12T21:42:19Z</published>
<updated>2017-04-12T21:42:19Z</updated>
<title type="text">Refactor ff2ppm(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/7a11656e9649247179bdae941683b4ac78e22586.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 7a11656e9649247179bdae941683b4ac78e22586
parent da99b58226c8dbb0cf764bbc7b42b7e3a36ff292
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:42:19 +0200
Refactor ff2ppm(1)
We make use of the utility functions for parsing the color mask and
other things and generally align the code with the general coding style.
</content>
</entry>
<entry>
<id>da99b58226c8dbb0cf764bbc7b42b7e3a36ff292</id>
<published>2017-04-12T21:41:00Z</published>
<updated>2017-04-12T21:41:00Z</updated>
<title type="text">Refactor png-conversion-utilities</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/da99b58226c8dbb0cf764bbc7b42b7e3a36ff292.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit da99b58226c8dbb0cf764bbc7b42b7e3a36ff292
parent a78b5dc6efaca25830c31ac17ef3ff81a493314d
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:41:00 +0200
Refactor png-conversion-utilities
We split out the libpng-setup into a separate function, it is very very
ugly.
The code also received a general cleanup and aligns itself much better
with the general coding style and structure.
</content>
</entry>
<entry>
<id>a78b5dc6efaca25830c31ac17ef3ff81a493314d</id>
<published>2017-04-12T21:39:41Z</published>
<updated>2017-04-12T21:39:41Z</updated>
<title type="text">Refactor ff2pam(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/a78b5dc6efaca25830c31ac17ef3ff81a493314d.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit a78b5dc6efaca25830c31ac17ef3ff81a493314d
parent 9a992f810d2a11751026ac352f435be1717e0979
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:39:41 +0200
Refactor ff2pam(1)
I chose to go with a row-based-approach here, which is a bit easier
to read and is somewhat "closer" to the input data.
</content>
</entry>
<entry>
<id>9a992f810d2a11751026ac352f435be1717e0979</id>
<published>2017-04-12T21:36:47Z</published>
<updated>2017-04-12T21:36:47Z</updated>
<title type="text">Refactor jpg-conversion-utilities</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/9a992f810d2a11751026ac352f435be1717e0979.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 9a992f810d2a11751026ac352f435be1717e0979
parent f22282e99a963f5935ea68a583cc7d928a787ce1
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:36:47 +0200
Refactor jpg-conversion-utilities
First of all, there was lots of libjpeg-specific cruft that just didn't
have any right to exist (METHODDEF(), strange typedefs, use of the
internal memory pool for no reason). This is gone now.
Additionally, we make use of the save and proven utility functions and
in general the code should be more well-separated now.
What is left to do is clear up the part where we mix the colors with the
mask.
</content>
</entry>
<entry>
<id>f22282e99a963f5935ea68a583cc7d928a787ce1</id>
<published>2017-04-12T21:36:06Z</published>
<updated>2017-04-12T21:36:06Z</updated>
<title type="text">Also print extra warnings</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/f22282e99a963f5935ea68a583cc7d928a787ce1.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit f22282e99a963f5935ea68a583cc7d928a787ce1
parent aa873108425a500d8f47edb56fb476f248cb09d0
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:36:06 +0200
Also print extra warnings
</content>
</entry>
<entry>
<id>aa873108425a500d8f47edb56fb476f248cb09d0</id>
<published>2017-04-12T21:34:40Z</published>
<updated>2017-04-12T21:34:40Z</updated>
<title type="text">Rename header-functions and add more util functions</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/aa873108425a500d8f47edb56fb476f248cb09d0.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit aa873108425a500d8f47edb56fb476f248cb09d0
parent 4ee1dee12fc4680504cb0a75c4b8a6862fd38db2
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 12 Apr 2017 23:34:40 +0200
Rename header-functions and add more util functions
parse_mask() -> parse a mask-color #xxxxxx
ereallocarray()
estrtonum()
These will come in handy in the respective tools.
</content>
</entry>
<entry>
<id>4ee1dee12fc4680504cb0a75c4b8a6862fd38db2</id>
<published>2017-04-02T18:56:15Z</published>
<updated>2017-04-02T18:56:15Z</updated>
<title type="text">config.mk: C89 -> C99</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/4ee1dee12fc4680504cb0a75c4b8a6862fd38db2.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 4ee1dee12fc4680504cb0a75c4b8a6862fd38db2
parent cef01ad97b1e215b0879c369e42e31bb3e5188a1
Author: Laslo Hunhold <
[email protected]>
Date: Sun, 2 Apr 2017 20:56:15 +0200
config.mk: C89 -> C99
We are using stdint.h, which is a C99 feature. Syntactically, the code
is C89 though.
</content>
</entry>
<entry>
<id>cef01ad97b1e215b0879c369e42e31bb3e5188a1</id>
<published>2017-04-02T18:53:55Z</published>
<updated>2017-04-02T18:55:49Z</updated>
<title type="text">Remove prerequisite from single-suffix inference rule</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/cef01ad97b1e215b0879c369e42e31bb3e5188a1.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit cef01ad97b1e215b0879c369e42e31bb3e5188a1
parent d25f3c73afa5beb83121c9b033bc0146c755ca3a
Author: Laslo Hunhold <
[email protected]>
Date: Sun, 2 Apr 2017 20:53:55 +0200
Remove prerequisite from single-suffix inference rule
This is against the standard:
"The application shall ensure that the makefile does not specify
prerequisites for inference rules;"[0]
We are still fine though as we explicitly state the dependency on the
requisite-objects in the $(BIN)-target.
Thanks Lucas for pointing this out!
[0]:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
</content>
</entry>
<entry>
<id>d25f3c73afa5beb83121c9b033bc0146c755ca3a</id>
<published>2017-03-30T07:49:48Z</published>
<updated>2017-03-30T07:49:48Z</updated>
<title type="text">Add util.{c|h} to deduplicate code</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/d25f3c73afa5beb83121c9b033bc0146c755ca3a.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit d25f3c73afa5beb83121c9b033bc0146c755ca3a
parent d0ce307972fbc95073666e92043fc7012ffbefdf
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 30 Mar 2017 09:49:48 +0200
Add util.{c|h} to deduplicate code
</content>
</entry>
<entry>
<id>d0ce307972fbc95073666e92043fc7012ffbefdf</id>
<published>2017-03-30T07:29:06Z</published>
<updated>2017-03-30T07:29:06Z</updated>
<title type="text">Mark explicit dependency on requisites for BIN</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/d0ce307972fbc95073666e92043fc7012ffbefdf.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit d0ce307972fbc95073666e92043fc7012ffbefdf
parent 0aaa36464a4ad965a3d747cc6df16137c7b5d6c5
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 30 Mar 2017 09:29:06 +0200
Mark explicit dependency on requisites for BIN
</content>
</entry>
<entry>
<id>0aaa36464a4ad965a3d747cc6df16137c7b5d6c5</id>
<published>2017-03-30T06:59:52Z</published>
<updated>2017-03-30T06:59:52Z</updated>
<title type="text">Pass LDFLAGS instead of CFLAGS in the linking stage</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/0aaa36464a4ad965a3d747cc6df16137c7b5d6c5.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 0aaa36464a4ad965a3d747cc6df16137c7b5d6c5
parent ef433a6baa3449f5a5ec7a6fd09efdd0ea6fb57b
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 30 Mar 2017 08:59:52 +0200
Pass LDFLAGS instead of CFLAGS in the linking stage
</content>
</entry>
<entry>
<id>ef433a6baa3449f5a5ec7a6fd09efdd0ea6fb57b</id>
<published>2017-03-30T06:52:22Z</published>
<updated>2017-03-30T06:52:22Z</updated>
<title type="text">No need to keep the implicit build rule</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/ef433a6baa3449f5a5ec7a6fd09efdd0ea6fb57b.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit ef433a6baa3449f5a5ec7a6fd09efdd0ea6fb57b
parent bbe28227eb80da62fec59aa79ba7a97f5c3937b4
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 30 Mar 2017 08:52:22 +0200
No need to keep the implicit build rule
</content>
</entry>
<entry>
<id>bbe28227eb80da62fec59aa79ba7a97f5c3937b4</id>
<published>2017-03-30T06:41:17Z</published>
<updated>2017-03-30T06:43:42Z</updated>
<title type="text">Make Makefile strictly POSIX compliant</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/bbe28227eb80da62fec59aa79ba7a97f5c3937b4.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit bbe28227eb80da62fec59aa79ba7a97f5c3937b4
parent 65829635d9f5f9f4a23c2f890c60c315bcbafee2
Author: Laslo Hunhold <
[email protected]>
Date: Thu, 30 Mar 2017 08:41:17 +0200
Make Makefile strictly POSIX compliant
Thanks Hiltjo for the feedback! GNUisms need to be avoided like a
plague, even if it means having to be a little more creative.
Strict POSIX compliance means that I just worked within the bounds of
the POSIX specification, hopefully without using any GNU or BSD
extensions. If I did, please let me know.
Tip to all Linux users: Test your Makefiles with pmake(1) instead of
make(1) (= GNU make) and refer to the newest POSIX 2016 make
specification[0].
[0]:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
</content>
</entry>
<entry>
<id>65829635d9f5f9f4a23c2f890c60c315bcbafee2</id>
<published>2017-03-29T16:07:29Z</published>
<updated>2017-03-29T16:07:29Z</updated>
<title type="text">Rename PREREQ to REQ</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/65829635d9f5f9f4a23c2f890c60c315bcbafee2.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 65829635d9f5f9f4a23c2f890c60c315bcbafee2
parent 416f39e3d68a6b12a05751930a609cfbbde483ff
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 29 Mar 2017 18:07:29 +0200
Rename PREREQ to REQ
</content>
</entry>
<entry>
<id>416f39e3d68a6b12a05751930a609cfbbde483ff</id>
<published>2017-03-29T15:51:41Z</published>
<updated>2017-03-29T15:51:41Z</updated>
<title type="text">Overhaul Build-system</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/416f39e3d68a6b12a05751930a609cfbbde483ff.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 416f39e3d68a6b12a05751930a609cfbbde483ff
parent 2ae075c04cff633eddefd3c07363d60bd05a3129
Author: Laslo Hunhold <
[email protected]>
Date: Wed, 29 Mar 2017 17:51:41 +0200
Overhaul Build-system
I didn't like the current Makefiles. They were too crufted and not
elegant. Additionally, given I'm planning to put some utility functions
into a util.{c|h}-prerequisite, I wrote this new Makefile with PREREQs
in mind.
</content>
</entry>
<entry>
<id>2ae075c04cff633eddefd3c07363d60bd05a3129</id>
<published>2017-01-09T18:43:46Z</published>
<updated>2017-01-09T18:43:46Z</updated>
<title type="text">Update TODO</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/2ae075c04cff633eddefd3c07363d60bd05a3129.gph" />
<author>
<name>Laslo Hunhold</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 2ae075c04cff633eddefd3c07363d60bd05a3129
parent 3d80d7237d18bdbf53e327a576b52b35b36af3ad
Author: Laslo Hunhold <
[email protected]>
Date: Mon, 9 Jan 2017 19:43:46 +0100
Update TODO
</content>
</entry>
<entry>
<id>3d80d7237d18bdbf53e327a576b52b35b36af3ad</id>
<published>2017-01-09T04:23:27Z</published>
<updated>2017-01-09T18:42:39Z</updated>
<title type="text">Add ff2pam(1): convert farbfeld to 16-bit RGBA Portable Arbitrary Map</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3d80d7237d18bdbf53e327a576b52b35b36af3ad.gph" />
<author>
<name>Mattias Andrée</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3d80d7237d18bdbf53e327a576b52b35b36af3ad
parent e9db1f49b75b183c8aeda321ca54aff5b436a4f6
Author: Mattias Andrée <
[email protected]>
Date: Mon, 9 Jan 2017 05:23:27 +0100
Add ff2pam(1): convert farbfeld to 16-bit RGBA Portable Arbitrary Map
Laslo: Minor changes
Signed-off-by: Mattias Andrée <
[email protected]>
</content>
</entry>
<entry>
<id>e9db1f49b75b183c8aeda321ca54aff5b436a4f6</id>
<published>2016-09-19T20:51:45Z</published>
<updated>2016-09-19T20:51:45Z</updated>
<title type="text">2ff: use trap to remove temporary file</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/e9db1f49b75b183c8aeda321ca54aff5b436a4f6.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit e9db1f49b75b183c8aeda321ca54aff5b436a4f6
parent 48c52a1f4889858ae3466f1987b522e426b6ddf3
Author: FRIGN <
[email protected]>
Date: Mon, 19 Sep 2016 22:51:45 +0200
2ff: use trap to remove temporary file
This also frees us from having to store the return value somewhere.
</content>
</entry>
<entry>
<id>48c52a1f4889858ae3466f1987b522e426b6ddf3</id>
<published>2016-09-19T19:47:50Z</published>
<updated>2016-09-19T19:47:50Z</updated>
<title type="text">2ff: make it more portable</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/48c52a1f4889858ae3466f1987b522e426b6ddf3.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 48c52a1f4889858ae3466f1987b522e426b6ddf3
parent 728997ff9662e6790165fd76296bef9ff8a09d93
Author: FRIGN <
[email protected]>
Date: Mon, 19 Sep 2016 21:47:50 +0200
2ff: make it more portable
Thanks Roberto and Evan Gates!
</content>
</entry>
<entry>
<id>728997ff9662e6790165fd76296bef9ff8a09d93</id>
<published>2016-09-19T17:07:27Z</published>
<updated>2016-09-19T17:07:27Z</updated>
<title type="text">2ff: Make it idempotent and clean it up a bit</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/728997ff9662e6790165fd76296bef9ff8a09d93.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 728997ff9662e6790165fd76296bef9ff8a09d93
parent 1f8903d1689e5f796fbe227587081d28f864cb07
Author: FRIGN <
[email protected]>
Date: Mon, 19 Sep 2016 19:07:27 +0200
2ff: Make it idempotent and clean it up a bit
If a file begins with "farbfeld", we just pass it through.
</content>
</entry>
<entry>
<id>1f8903d1689e5f796fbe227587081d28f864cb07</id>
<published>2016-09-07T21:10:05Z</published>
<updated>2016-09-07T21:10:05Z</updated>
<title type="text">Shellcheck 2ff fixes</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/1f8903d1689e5f796fbe227587081d28f864cb07.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 1f8903d1689e5f796fbe227587081d28f864cb07
parent 3fa775e1dfd5dc38648f88c2f385be1f0fe45605
Author: FRIGN <
[email protected]>
Date: Wed, 7 Sep 2016 23:10:05 +0200
Shellcheck 2ff fixes
I was inspired by the current discussion on dev@ to use shellcheck to
check my scripts and thought it might be a good choice to do this for
the 2ff script.
Not much had to be changed, because I was careful writing it, but still
it won't hurt to but $TMP in double quotes.
</content>
</entry>
<entry>
<id>3fa775e1dfd5dc38648f88c2f385be1f0fe45605</id>
<published>2016-05-18T22:21:58Z</published>
<updated>2016-05-19T10:55:45Z</updated>
<title type="text">Improve fread error handling in ff2*</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3fa775e1dfd5dc38648f88c2f385be1f0fe45605.gph" />
<author>
<name>Alexander Krotov</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3fa775e1dfd5dc38648f88c2f385be1f0fe45605
parent c494437937ee01c6d3eb5b630a15e207aae76c25
Author: Alexander Krotov <
[email protected]>
Date: Thu, 19 May 2016 01:21:58 +0300
Improve fread error handling in ff2*
In case of unexpected end of file errno is not set, and strerror(errno)
returns "Success". Caller should distinguish between error and EOF by
calling ferror(3) as described in fread(3).
</content>
</entry>
<entry>
<id>c494437937ee01c6d3eb5b630a15e207aae76c25</id>
<published>2016-05-17T21:02:25Z</published>
<updated>2016-05-18T08:34:05Z</updated>
<title type="text">Makefile improvements</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/c494437937ee01c6d3eb5b630a15e207aae76c25.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit c494437937ee01c6d3eb5b630a15e207aae76c25
parent 3d0f4c70385c8ad1dbaad1bb266e644c7109aa6a
Author: Hiltjo Posthuma <
[email protected]>
Date: Tue, 17 May 2016 23:02:25 +0200
Makefile improvements
- fix: rebuild on source change.
- allow to override dependency flag per tool (the ones that have deps).
- rebuild on config.mk or headers change.
</content>
</entry>
<entry>
<id>3d0f4c70385c8ad1dbaad1bb266e644c7109aa6a</id>
<published>2016-05-18T08:33:41Z</published>
<updated>2016-05-18T08:33:41Z</updated>
<title type="text">Revert "Fix Makefile to rebuild when there have been changes"</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3d0f4c70385c8ad1dbaad1bb266e644c7109aa6a.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3d0f4c70385c8ad1dbaad1bb266e644c7109aa6a
parent 545c500d4278c50e781c9a5a550e92cb0023c8e8
Author: FRIGN <
[email protected]>
Date: Wed, 18 May 2016 10:33:41 +0200
Revert "Fix Makefile to rebuild when there have been changes"
This reverts commit 545c500d4278c50e781c9a5a550e92cb0023c8e8.
</content>
</entry>
<entry>
<id>545c500d4278c50e781c9a5a550e92cb0023c8e8</id>
<published>2016-05-17T19:53:38Z</published>
<updated>2016-05-17T19:53:38Z</updated>
<title type="text">Fix Makefile to rebuild when there have been changes</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/545c500d4278c50e781c9a5a550e92cb0023c8e8.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 545c500d4278c50e781c9a5a550e92cb0023c8e8
parent 96faf20b1bcef354e6b1fd03a26c286070c52e74
Author: FRIGN <
[email protected]>
Date: Tue, 17 May 2016 21:53:38 +0200
Fix Makefile to rebuild when there have been changes
I forgot to add the dependencies in the build process
</content>
</entry>
<entry>
<id>96faf20b1bcef354e6b1fd03a26c286070c52e74</id>
<published>2016-04-10T20:54:42Z</published>
<updated>2016-04-10T20:54:42Z</updated>
<title type="text">Remove dimension checks</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/96faf20b1bcef354e6b1fd03a26c286070c52e74.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 96faf20b1bcef354e6b1fd03a26c286070c52e74
parent d8796e33f347b92a6526a1f3e6da8f5ddae7391b
Author: FRIGN <
[email protected]>
Date: Sun, 10 Apr 2016 22:54:42 +0200
Remove dimension checks
This may come as a surprise, but I'd like the libraries to handle
these cases.
Maybe some day libpng supports 0x0 images, so why impose artificial
limits here?
Same with ppm.
For me, an ideal data converter loses as little information as possible.
In mixed cases (dimensions 0xn, where n > 0) we could print a warning,
but here, 2 principles come at play:
- GIGO (garbage in, garbage out)
- no information loss if possible
Given the code later on won't try to access the malloc(0) region, we
are also all safe.
</content>
</entry>
<entry>
<id>d8796e33f347b92a6526a1f3e6da8f5ddae7391b</id>
<published>2016-04-03T20:17:33Z</published>
<updated>2016-04-03T20:17:33Z</updated>
<title type="text">Remove line-breaks from Makefile</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/d8796e33f347b92a6526a1f3e6da8f5ddae7391b.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit d8796e33f347b92a6526a1f3e6da8f5ddae7391b
parent 47a5f38ce9d44b5c3c0dad9e7824c8e2156a203d
Author: FRIGN <
[email protected]>
Date: Sun, 3 Apr 2016 22:17:33 +0200
Remove line-breaks from Makefile
Even though I like line-length limits, it imposed a useless limitation
on the console output, given the line input is variable.
</content>
</entry>
<entry>
<id>47a5f38ce9d44b5c3c0dad9e7824c8e2156a203d</id>
<published>2016-04-03T19:44:20Z</published>
<updated>2016-04-03T20:07:12Z</updated>
<title type="text">Makefile improvements</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/47a5f38ce9d44b5c3c0dad9e7824c8e2156a203d.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 47a5f38ce9d44b5c3c0dad9e7824c8e2156a203d
parent 34e9cba51f5149da0670b32101e23b4d76e20d61
Author: Hiltjo Posthuma <
[email protected]>
Date: Sun, 3 Apr 2016 21:44:20 +0200
Makefile improvements
- be verbose by default: don't hide the executed commands.
- no need to make clean on make dist, but make sure to have a clean directory.
- define 2ff in ${SCRIPTS}.
- make dist: gzip directly, don't store intermediate step (faster for make dist
on floppies).
- don't cd into directories, just loop each file.
</content>
</entry>
<entry>
<id>34e9cba51f5149da0670b32101e23b4d76e20d61</id>
<published>2016-03-24T18:17:48Z</published>
<updated>2016-04-03T18:39:13Z</updated>
<title type="text">add ff2jpg tool, convert farbfeld images to RGB JPEG</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/34e9cba51f5149da0670b32101e23b4d76e20d61.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 34e9cba51f5149da0670b32101e23b4d76e20d61
parent 7f295f8c100a504c305d537bd3fde6492f15ef7a
Author: Hiltjo Posthuma <
[email protected]>
Date: Thu, 24 Mar 2016 19:17:48 +0100
add ff2jpg tool, convert farbfeld images to RGB JPEG
</content>
</entry>
<entry>
<id>7f295f8c100a504c305d537bd3fde6492f15ef7a</id>
<published>2016-03-24T18:09:41Z</published>
<updated>2016-04-03T18:39:13Z</updated>
<title type="text">don't link against unneeded libs</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/7f295f8c100a504c305d537bd3fde6492f15ef7a.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 7f295f8c100a504c305d537bd3fde6492f15ef7a
parent 264979bf52261cb461212be8978c2a4697aa2e80
Author: Hiltjo Posthuma <
[email protected]>
Date: Thu, 24 Mar 2016 19:09:41 +0100
don't link against unneeded libs
- jpg2ff requires libjpeg
- ff2png, png2ff requires libpng (and libz)
- ff2ppm has no dependencies
</content>
</entry>
<entry>
<id>264979bf52261cb461212be8978c2a4697aa2e80</id>
<published>2016-03-24T17:45:57Z</published>
<updated>2016-04-03T18:39:13Z</updated>
<title type="text">fix bugs introduced by refactor f0a4ce113d0e9dc50110a0ad9e98433d05aa2307</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/264979bf52261cb461212be8978c2a4697aa2e80.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 264979bf52261cb461212be8978c2a4697aa2e80
parent 265ded62c50b4d6be72fbff0a10304280ec233e5
Author: Hiltjo Posthuma <
[email protected]>
Date: Thu, 24 Mar 2016 18:45:57 +0100
fix bugs introduced by refactor f0a4ce113d0e9dc50110a0ad9e98433d05aa2307
</content>
</entry>
<entry>
<id>265ded62c50b4d6be72fbff0a10304280ec233e5</id>
<published>2016-03-21T22:41:27Z</published>
<updated>2016-03-21T22:41:27Z</updated>
<title type="text">Use uint8_t instead of uint16_t correctly</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/265ded62c50b4d6be72fbff0a10304280ec233e5.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 265ded62c50b4d6be72fbff0a10304280ec233e5
parent fdf5a2b53a7499e5860323255d914191aee7cdba
Author: FRIGN <
[email protected]>
Date: Mon, 21 Mar 2016 23:41:27 +0100
Use uint8_t instead of uint16_t correctly
</content>
</entry>
<entry>
<id>fdf5a2b53a7499e5860323255d914191aee7cdba</id>
<published>2016-03-21T21:54:49Z</published>
<updated>2016-03-21T21:54:49Z</updated>
<title type="text">Write a better format for the row-buffer allocation</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/fdf5a2b53a7499e5860323255d914191aee7cdba.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit fdf5a2b53a7499e5860323255d914191aee7cdba
parent f0a4ce113d0e9dc50110a0ad9e98433d05aa2307
Author: FRIGN <
[email protected]>
Date: Mon, 21 Mar 2016 22:54:49 +0100
Write a better format for the row-buffer allocation
</content>
</entry>
<entry>
<id>f0a4ce113d0e9dc50110a0ad9e98433d05aa2307</id>
<published>2016-03-21T21:26:37Z</published>
<updated>2016-03-21T21:26:37Z</updated>
<title type="text">Optimize ff2ppm(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/f0a4ce113d0e9dc50110a0ad9e98433d05aa2307.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit f0a4ce113d0e9dc50110a0ad9e98433d05aa2307
parent 0da581eb1d2da5300d7b3e36ab6aa84b69ec2525
Author: FRIGN <
[email protected]>
Date: Mon, 21 Mar 2016 22:26:37 +0100
Optimize ff2ppm(1)
use the proper multiplication factors :)
</content>
</entry>
<entry>
<id>0da581eb1d2da5300d7b3e36ab6aa84b69ec2525</id>
<published>2016-03-21T20:09:14Z</published>
<updated>2016-03-21T20:37:13Z</updated>
<title type="text">add arg.h (needed for ff2ppm)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/0da581eb1d2da5300d7b3e36ab6aa84b69ec2525.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 0da581eb1d2da5300d7b3e36ab6aa84b69ec2525
parent dc512d040c7d081ed96b1919420aebd646968879
Author: Hiltjo Posthuma <
[email protected]>
Date: Mon, 21 Mar 2016 21:09:14 +0100
add arg.h (needed for ff2ppm)
</content>
</entry>
<entry>
<id>dc512d040c7d081ed96b1919420aebd646968879</id>
<published>2016-03-21T20:06:06Z</published>
<updated>2016-03-21T20:37:13Z</updated>
<title type="text">add ff2ppm(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/dc512d040c7d081ed96b1919420aebd646968879.gph" />
<author>
<name>Hiltjo Posthuma</name>
<email>
[email protected]</email>
</author>
<content type="text">commit dc512d040c7d081ed96b1919420aebd646968879
parent e637aae67ededf6a4a0b4d490d02f3294f297b71
Author: Hiltjo Posthuma <
[email protected]>
Date: Mon, 21 Mar 2016 21:06:06 +0100
add ff2ppm(1)
ff2ppm can convert farbfeld images to PPM (P6 binary format, 24-bit RGB).
ff2ppm has an option -b to set the background color, for example for png files:
png2ff < test.png | ff2ppm -b '#00ff00' > test.ppm
</content>
</entry>
<entry>
<id>e637aae67ededf6a4a0b4d490d02f3294f297b71</id>
<published>2016-03-18T18:49:11Z</published>
<updated>2016-03-18T18:49:11Z</updated>
<title type="text">Prevent overflow in rowlen and improve inaccuracies in style</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/e637aae67ededf6a4a0b4d490d02f3294f297b71.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit e637aae67ededf6a4a0b4d490d02f3294f297b71
parent 49cef794d9cef3c1ab8478963a7f778c8c28eb70
Author: FRIGN <
[email protected]>
Date: Fri, 18 Mar 2016 19:49:11 +0100
Prevent overflow in rowlen and improve inaccuracies in style
</content>
</entry>
<entry>
<id>49cef794d9cef3c1ab8478963a7f778c8c28eb70</id>
<published>2016-03-14T22:12:49Z</published>
<updated>2016-03-14T22:12:49Z</updated>
<title type="text">Bump version to 2</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/49cef794d9cef3c1ab8478963a7f778c8c28eb70.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 49cef794d9cef3c1ab8478963a7f778c8c28eb70
parent 1d07cf4473ef4539d3ea249bf7e751a695470ff9
Author: FRIGN <
[email protected]>
Date: Mon, 14 Mar 2016 23:12:49 +0100
Bump version to 2
There have been quite considerable changes since version 1.
The conversion tools have had a considerable performance boost of
around 75% by using a row-buffer instead of reading each R-G-B-A-chunk
individually.
Also, 2ff(1) somehow called "xconvert" instead of "convert", rendering
it useless for anything other than png's and jpg's.
There was a small excursion to color spaces and ICC color profile
handling, but this has been dismissed (it was a difficult decision).
Thanks for all the feedback!
</content>
</entry>
<entry>
<id>1d07cf4473ef4539d3ea249bf7e751a695470ff9</id>
<published>2016-03-04T11:31:58Z</published>
<updated>2016-03-04T11:31:58Z</updated>
<title type="text">Add proper blank lines in png2ff(1) before comments</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/1d07cf4473ef4539d3ea249bf7e751a695470ff9.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 1d07cf4473ef4539d3ea249bf7e751a695470ff9
parent 4d567caa917deab542225fd548a2673dea42461c
Author: FRIGN <
[email protected]>
Date: Fri, 4 Mar 2016 12:31:58 +0100
Add proper blank lines in png2ff(1) before comments
</content>
</entry>
<entry>
<id>4d567caa917deab542225fd548a2673dea42461c</id>
<published>2016-03-04T11:29:29Z</published>
<updated>2016-03-04T11:30:49Z</updated>
<title type="text">Fix 2 little things in jpg2ff(1)</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/4d567caa917deab542225fd548a2673dea42461c.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 4d567caa917deab542225fd548a2673dea42461c
parent 3122c071397b4db9c9122072c56bd31c02085ca7
Author: FRIGN <
[email protected]>
Date: Fri, 4 Mar 2016 12:29:29 +0100
Fix 2 little things in jpg2ff(1)
- actually print usage when one argument is given
(forgot to incorporate the argv0-change there).
- use fputs instead of fprintf for printing a string
constant.
</content>
</entry>
<entry>
<id>3122c071397b4db9c9122072c56bd31c02085ca7</id>
<published>2016-03-04T11:23:04Z</published>
<updated>2016-03-04T11:23:04Z</updated>
<title type="text">Use uint32-array to store the header</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3122c071397b4db9c9122072c56bd31c02085ca7.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3122c071397b4db9c9122072c56bd31c02085ca7
parent 14df2f24dfedf9d12dcec02d57c596a34be0f197
Author: FRIGN <
[email protected]>
Date: Fri, 4 Mar 2016 12:23:04 +0100
Use uint32-array to store the header
this goes around the undefined behaviour imposed by using
(*(uint32_t *)(hdr + 4n))
</content>
</entry>
<entry>
<id>14df2f24dfedf9d12dcec02d57c596a34be0f197</id>
<published>2016-03-04T11:22:07Z</published>
<updated>2016-03-04T11:22:07Z</updated>
<title type="text">Fix 2ff</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/14df2f24dfedf9d12dcec02d57c596a34be0f197.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 14df2f24dfedf9d12dcec02d57c596a34be0f197
parent 489b6402af4972b19a9295ccb74482b8daec83ec
Author: FRIGN <
[email protected]>
Date: Fri, 4 Mar 2016 12:22:07 +0100
Fix 2ff
No idea how "xconvert" sneaked into there.
</content>
</entry>
<entry>
<id>489b6402af4972b19a9295ccb74482b8daec83ec</id>
<published>2016-02-22T16:40:07Z</published>
<updated>2016-02-22T16:40:07Z</updated>
<title type="text">Remove last ICC traces</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/489b6402af4972b19a9295ccb74482b8daec83ec.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 489b6402af4972b19a9295ccb74482b8daec83ec
parent cb90a3d930f63c1d5f9aca8c6b680735711303cf
Author: FRIGN <
[email protected]>
Date: Mon, 22 Feb 2016 17:40:07 +0100
Remove last ICC traces
</content>
</entry>
<entry>
<id>cb90a3d930f63c1d5f9aca8c6b680735711303cf</id>
<published>2016-02-22T16:37:56Z</published>
<updated>2016-02-22T16:38:27Z</updated>
<title type="text">Use the "row-major" term instead of "row-aligned"</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/cb90a3d930f63c1d5f9aca8c6b680735711303cf.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit cb90a3d930f63c1d5f9aca8c6b680735711303cf
parent de61085a0413f2f7570a89df345eb875d1a0298c
Author: FRIGN <
[email protected]>
Date: Mon, 22 Feb 2016 17:37:56 +0100
Use the "row-major" term instead of "row-aligned"
</content>
</entry>
<entry>
<id>de61085a0413f2f7570a89df345eb875d1a0298c</id>
<published>2016-02-01T12:36:55Z</published>
<updated>2016-02-01T12:36:55Z</updated>
<title type="text">Refactor tools and increase performance by ~70%</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/de61085a0413f2f7570a89df345eb875d1a0298c.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit de61085a0413f2f7570a89df345eb875d1a0298c
parent 7b03f52a130a12355d87bc05f028db31963112cc
Author: FRIGN <
[email protected]>
Date: Mon, 1 Feb 2016 13:36:55 +0100
Refactor tools and increase performance by ~70%
Instead of calling fwrite on each channel, we write one big chunk
of a line.
This increases performance by around 70% compared to version 1 and
the farbfeld tools are now roughly fast as imagemagick's convert.
I also refactored the code, removed unnecessary variables and unified
the variable naming and error reporting a bit.
Inside jpg2ff, the loop didn't need 3 variables.
</content>
</entry>
<entry>
<id>7b03f52a130a12355d87bc05f028db31963112cc</id>
<published>2016-01-30T23:08:17Z</published>
<updated>2016-01-30T23:08:44Z</updated>
<title type="text">Move alpha-premultiplication information away from the FORMAT</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/7b03f52a130a12355d87bc05f028db31963112cc.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 7b03f52a130a12355d87bc05f028db31963112cc
parent dd22f4087d5e7420929575d1bbaf767d76395e9c
Author: FRIGN <
[email protected]>
Date: Sun, 31 Jan 2016 00:08:17 +0100
Move alpha-premultiplication information away from the FORMAT
and rather define it in the manual.
In the end, it doesn't influence the data structure and thus is not
part of the FORMAT-specification.
</content>
</entry>
<entry>
<id>dd22f4087d5e7420929575d1bbaf767d76395e9c</id>
<published>2016-01-29T22:34:24Z</published>
<updated>2016-01-29T22:34:24Z</updated>
<title type="text">Back to the roots.</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/dd22f4087d5e7420929575d1bbaf767d76395e9c.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit dd22f4087d5e7420929575d1bbaf767d76395e9c
parent e9feca5c2bda05b9a356617868fd4b08ec903d0d
Author: FRIGN <
[email protected]>
Date: Fri, 29 Jan 2016 23:34:24 +0100
Back to the roots.
Talking with even more people and weighing the benefits, I've made the
decision to remove color spaces from farbfeld again (as it currently
is handled in version 1) and recommend sRGB, not force it.
Thing is the following: We are not ready yet for this step. Neither the
people working with the images nor the hardware to display extended
colors. Using greater colorspaces also removes the "hackability" of
farbfeld.
As it was previously possible to easily create gradients in plain C,
you have to keep multiple things in mind with linear ProPhoto RGB.
The first thing is that not all colors are "real", and there are
imaginary colors. This doesn't happen with sRGB because all the colors
it describes are "real".
The second thing is the linear gamma curve, which makes the gradients
look perceptually inconsistent.
In the interest of creating a good and simple interchange format, we
can't only weigh in points of professionals. This little excursion has
shown that aiming for the 99% is still the way to go.
And as often as you could repeat that sRGB will meet its fate in the
future when screens become better, it is surprising how badly the
industry has caught up to it.
I also must honestly say that we can't solve the color space issue
using RGB and should look at other formats to explore (CIELUV, CIELAB),
which I will probably give a talk about at slcon3.
Before releasing version 2, my aim is to make the I/O a bit more
effective (as far as possible) so it's even easier to use.
I know people will be pissed off, but fuck it, I'm the maintainer!
Live with it.
</content>
</entry>
<entry>
<id>e9feca5c2bda05b9a356617868fd4b08ec903d0d</id>
<published>2016-01-20T21:31:25Z</published>
<updated>2016-01-20T21:31:25Z</updated>
<title type="text">Use linear RGB</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/e9feca5c2bda05b9a356617868fd4b08ec903d0d.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit e9feca5c2bda05b9a356617868fd4b08ec903d0d
parent 291e677210c6c2c1d1eba2f0ba2243806ef63b07
Author: FRIGN <
[email protected]>
Date: Wed, 20 Jan 2016 22:31:25 +0100
Use linear RGB
Makes things a lot easier for image manipulation algorithms which
can be expected to be applied to farbfeld data.
</content>
</entry>
<entry>
<id>291e677210c6c2c1d1eba2f0ba2243806ef63b07</id>
<published>2016-01-19T22:32:55Z</published>
<updated>2016-01-19T22:32:55Z</updated>
<title type="text">Update manpage reflecting the features of each tool</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/291e677210c6c2c1d1eba2f0ba2243806ef63b07.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 291e677210c6c2c1d1eba2f0ba2243806ef63b07
parent 2ea5274584f8f38a8bd49271ad7aebed5d3afec3
Author: FRIGN <
[email protected]>
Date: Tue, 19 Jan 2016 23:32:55 +0100
Update manpage reflecting the features of each tool
</content>
</entry>
<entry>
<id>2ea5274584f8f38a8bd49271ad7aebed5d3afec3</id>
<published>2016-01-19T22:17:27Z</published>
<updated>2016-01-19T22:17:27Z</updated>
<title type="text">Remove more png cruft from code</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/2ea5274584f8f38a8bd49271ad7aebed5d3afec3.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 2ea5274584f8f38a8bd49271ad7aebed5d3afec3
parent 93204899d4a27d2ecefe7fe7f0902f94cab72268
Author: FRIGN <
[email protected]>
Date: Tue, 19 Jan 2016 23:17:27 +0100
Remove more png cruft from code
No need for these shitty png-types.
</content>
</entry>
<entry>
<id>93204899d4a27d2ecefe7fe7f0902f94cab72268</id>
<published>2016-01-17T20:03:19Z</published>
<updated>2016-01-17T20:03:19Z</updated>
<title type="text">Add ICC-color-profile handling to jpg2ff</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/93204899d4a27d2ecefe7fe7f0902f94cab72268.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 93204899d4a27d2ecefe7fe7f0902f94cab72268
parent 42ace91b3ddba2fa40e0362ce7aba814aa7dd79c
Author: FRIGN <
[email protected]>
Date: Sun, 17 Jan 2016 21:03:19 +0100
Add ICC-color-profile handling to jpg2ff
And fix a bug in the transforms that was introduced yesterday.
The only thing remaining for jpg is handling EXIF-embedded color
profiles, but the EXIF format sucks so bad.
</content>
</entry>
<entry>
<id>42ace91b3ddba2fa40e0362ce7aba814aa7dd79c</id>
<published>2016-01-17T20:01:50Z</published>
<updated>2016-01-17T20:01:50Z</updated>
<title type="text">Fix gcc-optimization bug in png2ff</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/42ace91b3ddba2fa40e0362ce7aba814aa7dd79c.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 42ace91b3ddba2fa40e0362ce7aba814aa7dd79c
parent 853b79b67c81735874acaeeab5293e9dd7af06bb
Author: FRIGN <
[email protected]>
Date: Sun, 17 Jan 2016 21:01:50 +0100
Fix gcc-optimization bug in png2ff
For some reason, those strange png_char_pp-passes were optimized away
in some way, yielding in icc_len = 0.
I now explicitly use the pointers to indicate to the compiler that we
pass by reference. Fuck those png types...
</content>
</entry>
<entry>
<id>853b79b67c81735874acaeeab5293e9dd7af06bb</id>
<published>2016-01-17T01:18:00Z</published>
<updated>2016-01-17T01:18:00Z</updated>
<title type="text">Clarify manpages in regard to the ICC handling</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/853b79b67c81735874acaeeab5293e9dd7af06bb.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 853b79b67c81735874acaeeab5293e9dd7af06bb
parent 3bc6c69ae8ff25377848b76a25494aa4a0055544
Author: FRIGN <
[email protected]>
Date: Sun, 17 Jan 2016 02:18:00 +0100
Clarify manpages in regard to the ICC handling
</content>
</entry>
<entry>
<id>3bc6c69ae8ff25377848b76a25494aa4a0055544</id>
<published>2016-01-17T00:39:36Z</published>
<updated>2016-01-17T01:11:54Z</updated>
<title type="text">Mandate "ProPhoto RGB" color space for farbfeld and handle ICC profiles</title>
<link rel="alternate" href="
gopher://suckless.org/1/git/farbfeld/commit/3bc6c69ae8ff25377848b76a25494aa4a0055544.gph" />
<author>
<name>FRIGN</name>
<email>
[email protected]</email>
</author>
<content type="text">commit 3bc6c69ae8ff25377848b76a25494aa4a0055544
parent a0767dd0ba8c9c5f04616ff5dc8d82b2591cf2d8
Author: FRIGN <
[email protected]>
Date: Sun, 17 Jan 2016 01:39:36 +0100
Mandate "ProPhoto RGB" color space for farbfeld and handle ICC profiles
I've literally been thinking about this for quite a while now. The
initial motivation behind defaulting to sRGB was the idea that most data
on the web was in sRGB anyway.
However, my assumption was weakened in the sense that the development
is clearly moving towards images with supplied ICC profiles and software
slowly catching up to handle this. My tests have shown that more and
more people even do that on the web, even though it's been a "tradition"
that Photoshop users "Save for Web" and convert the gamut lossy into
sRGB to bring a consistent color-"experience" even to those clients not
supporting ICC profiles and which always assume sRGB.
What made this decision so difficult is that converting to "ProPhoto
RGB" requires some advanced knowledge on this topic, however, I came to
the conclusion to implement it given the *2ff- and ff2*-tools handle it
silently and well in the background, and given the little cms library is
actually quite okay to use.
When converting from ff to png, a proper "Pro Photo RGB" ICC V4-profile is
automatically included in the exported png by ff2png. V4 is not as
widespread as V2, but in the worst case (no V4 support somewhere) the
colors will just be a little off.
As an added bonus, any input files for png2ff which include ICC profiles
are also correctly handled and the color space conversions are executed
as expected.
Accordingly, the FORMAT-specification has been changed. While at it,
I added the note on alpha-multiplication. Now the format is very exact
and shouldn't leave any ambiguities.
jpeg supports ICC profiles as well, but I hadn't had the chance to look
into it (not as trivial as PNG probably, help appreciated :)), so I'm
always assuming sRGB here.
Rationale
---------
It is not obvious why one would go through the lenghts of supporting
this big-gamut colorspace and not just stick with sRGB. In 99% of the
cases, there's no reason to do that, but with even more extreme
developments in the OLED-sector and other advances display hardware is
slowly getting more powerful than sRGB, asking for color information
which is suitable for the task and actually uses the full potential.
The decision in this regard was not difficult in farbfeld because we
always use 16-Bit anyway and won't have to fear posterization in a big-
gamut color-space.
</content>
</entry>
</feed>