]> granicus.if.org Git - recode/log
recode
6 years agomanual: document the current behaviour regarding French names of characters
Maëlan [Tue, 17 Jul 2018 17:53:59 +0000 (19:53 +0200)]
manual: document the current behaviour regarding French names of characters

6 years agotestdump.c: remove unused variable
Maëlan [Sun, 15 Jul 2018 13:05:03 +0000 (15:05 +0200)]
testdump.c: remove unused variable

6 years agotestdump.c: remove code forgotten in commit 3051a87 (function should_prefer_french)
Maëlan [Sun, 15 Jul 2018 12:30:38 +0000 (14:30 +0200)]
testdump.c: remove code forgotten in commit 3051a87 (function should_prefer_french)

6 years agoManual: highlight potential problems with iconv, and how to disable it
Reuben Thomas [Fri, 1 Jun 2018 20:32:24 +0000 (21:32 +0100)]
Manual: highlight potential problems with iconv, and how to disable it

6 years agoUpdate repo name to canonical case
Reuben Thomas [Fri, 1 Jun 2018 19:40:13 +0000 (20:40 +0100)]
Update repo name to canonical case

6 years agomain.c: fix copyright range in version message
Reuben Thomas [Fri, 1 Jun 2018 19:36:16 +0000 (20:36 +0100)]
main.c: fix copyright range in version message

6 years agohelp2man: call with --locale=en_US.UTF-8 to get UTF-8 transmitted
Reuben Thomas [Fri, 1 Jun 2018 19:33:11 +0000 (20:33 +0100)]
help2man: call with --locale=en_US.UTF-8 to get UTF-8 transmitted

6 years agoTODO: remove some, fix one
Reuben Thomas [Fri, 1 Jun 2018 19:25:37 +0000 (20:25 +0100)]
TODO: remove some, fix one

We have already overhauled the pipe method.

Fix an apparent typo (“converses” → “converters”)

6 years agomain.c: improve description of --strict, fixing typo
Reuben Thomas [Fri, 1 Jun 2018 19:15:09 +0000 (20:15 +0100)]
main.c: improve description of --strict, fixing typo

6 years agoUse AC_PATH_PROG instead of AX_WITH_PROG
Reuben Thomas [Thu, 8 Feb 2018 01:05:02 +0000 (01:05 +0000)]
Use AC_PATH_PROG instead of AX_WITH_PROG

6 years agoAppVeyor: remove comment from another project
Reuben Thomas [Wed, 7 Feb 2018 13:21:34 +0000 (13:21 +0000)]
AppVeyor: remove comment from another project

6 years agobootstrap.conf: fix timestamp, which somehow got set to the year 3018
Reuben Thomas [Wed, 31 Jan 2018 22:52:53 +0000 (22:52 +0000)]
bootstrap.conf: fix timestamp, which somehow got set to the year 3018

6 years agoDocument use of python-dbg for testing with Valgrind v3.7
Reuben Thomas [Wed, 31 Jan 2018 00:47:54 +0000 (00:47 +0000)]
Document use of python-dbg for testing with Valgrind

6 years agoBump po files and version.texi for release
Reuben Thomas [Wed, 31 Jan 2018 00:44:12 +0000 (00:44 +0000)]
Bump po files and version.texi for release

6 years agotask.c: slight simplification of recode_perform_task
Reuben Thomas [Tue, 30 Jan 2018 22:46:48 +0000 (22:46 +0000)]
task.c: slight simplification of recode_perform_task

6 years agoRemove 'tree' surface (see NEWS for details)
Reuben Thomas [Tue, 30 Jan 2018 22:05:38 +0000 (22:05 +0000)]
Remove 'tree' surface (see NEWS for details)

6 years agoRemove conversion methods
Reuben Thomas [Tue, 30 Jan 2018 21:40:53 +0000 (21:40 +0000)]
Remove conversion methods

See NEWS for explanation and rationale.

Also reorder NEWS items for 3.7 better.

6 years agotask.c: slight simplification in perform_sequence
Reuben Thomas [Tue, 30 Jan 2018 21:26:00 +0000 (21:26 +0000)]
task.c: slight simplification in perform_sequence

Now does not need to mention RECODE_SEQUENCE_IN_MEMORY.

6 years agoFix pipe strategy (was previously broken for non-trivial pipes)
Reuben Thomas [Tue, 30 Jan 2018 21:05:37 +0000 (21:05 +0000)]
Fix pipe strategy (was previously broken for non-trivial pipes)

6 years agoCompute Python extension suffix and use it
Reuben Thomas [Tue, 30 Jan 2018 20:04:46 +0000 (20:04 +0000)]
Compute Python extension suffix and use it

This information doesn’t seem to be available from Python, so write our own
test in configure.ac.

6 years agoAppVeyor: make all before distcheck
Reuben Thomas [Tue, 30 Jan 2018 19:21:19 +0000 (19:21 +0000)]
AppVeyor: make all before distcheck

It seems this is needed on Windows; it’s not a big deal, so rather than try
to fix the build system, just do it.

6 years agoFix fallthrough warnings from gcc using gnulib's FALLTHROUGH macro
Reuben Thomas [Tue, 30 Jan 2018 19:17:52 +0000 (19:17 +0000)]
Fix fallthrough warnings from gcc using gnulib's FALLTHROUGH macro

6 years agoRedefine BIT_MASK to avoid shifting negative quantity warning
Reuben Thomas [Tue, 30 Jan 2018 15:49:32 +0000 (15:49 +0000)]
Redefine BIT_MASK to avoid shifting negative quantity warning

6 years agoFix potential NULL dereference warnings
Reuben Thomas [Tue, 30 Jan 2018 15:40:23 +0000 (15:40 +0000)]
Fix potential NULL dereference warnings

6 years agoFix fallthrough warnings for non-returning functions
Reuben Thomas [Tue, 30 Jan 2018 15:36:16 +0000 (15:36 +0000)]
Fix fallthrough warnings for non-returning functions

Not yet using C11, so no _Noreturn yet.

6 years agosrc/Makefile.am: ensure recode is made before making man page
Reuben Thomas [Tue, 30 Jan 2018 14:48:35 +0000 (14:48 +0000)]
src/Makefile.am: ensure recode is made before making man page

A line of the suggested code from the automake manual was missing.

6 years agoRelicense from GPL 2 to GPL 3
Reuben Thomas [Tue, 30 Jan 2018 12:56:51 +0000 (12:56 +0000)]
Relicense from GPL 2 to GPL 3

6 years agoFix unused variable warnings
Reuben Thomas [Tue, 30 Jan 2018 15:18:36 +0000 (15:18 +0000)]
Fix unused variable warnings

Move all pipe-specific code under #if HAVE_PIPE

6 years agoAdd LIBINTL flags to Cython module
Reuben Thomas [Tue, 30 Jan 2018 11:47:24 +0000 (11:47 +0000)]
Add LIBINTL flags to Cython module

They are not empty on all platforms!

Also Cython on MSYS seems to call gcc in such a way that it doesn’t
understand UNIX paths (it seems to understand them normally), so engage in
suitable shenanigans: this should work on any Windows system that has
cygpath.

6 years agoMakefile.am: build po after src
Reuben Thomas [Tue, 30 Jan 2018 11:46:43 +0000 (11:46 +0000)]
Makefile.am: build po after src

strip-data.c is needed for po

Noticed when trying to build make distcheck directly from a fresh check-out.

6 years agoAppVeyor: don’t bother reinstalling packages
Reuben Thomas [Mon, 29 Jan 2018 13:48:04 +0000 (13:48 +0000)]
AppVeyor: don’t bother reinstalling packages

base-devel, texinfo and help2man are pre-installed, so save time by not
causing them to be reinstalled.

6 years agot50_methods.py test: skip filter tests on Windows
Reuben Thomas [Tue, 30 Jan 2018 01:51:22 +0000 (01:51 +0000)]
t50_methods.py test: skip filter tests on Windows

Windows doesn’t have fork anyway, but also can’t cope with redirection in
the shell.

6 years agoSet DEFAULT_CHARSET to ASCII for tests
Reuben Thomas [Tue, 30 Jan 2018 01:49:50 +0000 (01:49 +0000)]
Set DEFAULT_CHARSET to ASCII for tests

Avoid problems with implicit surfaces in some charsets.

6 years agoDo all I/O as binary
Reuben Thomas [Tue, 30 Jan 2018 00:27:38 +0000 (00:27 +0000)]
Do all I/O as binary

This is necessary for Windows. I'm not sure why it wasn't done before;
without it, Windows simply won't work correctly, without an extra layer of
checking the platform encoding.

6 years agoRecode.pyx: add verbose argument to recode method
Reuben Thomas [Tue, 30 Jan 2018 00:17:44 +0000 (00:17 +0000)]
Recode.pyx: add verbose argument to recode method

To ease debugging. Defaults to False.

6 years agoAdd more suppressions
Reuben Thomas [Mon, 29 Jan 2018 14:41:08 +0000 (14:41 +0000)]
Add more suppressions

Use of subprocess module seems to tickle Valgrind, so activate some existing
leak suppressions and add some more.

6 years agoAppVeyor: install msys cython packages
Reuben Thomas [Mon, 29 Jan 2018 13:48:04 +0000 (13:48 +0000)]
AppVeyor: install msys cython packages

They are available after all.

Add MINGW_BITS setting for MSYS for future use (currently disabled as
there’s no msys-flavour cython).

6 years agoAppVeyor: configure with --enable-silent-rules for shorter logs
Reuben Thomas [Mon, 29 Jan 2018 13:47:20 +0000 (13:47 +0000)]
AppVeyor: configure with --enable-silent-rules for shorter logs

Also just go straight into make distcheck, no need to run just make [all]
first.

6 years agoAppVeyor: don’t try to build on msys, no cython available there
Reuben Thomas [Mon, 29 Jan 2018 13:47:04 +0000 (13:47 +0000)]
AppVeyor: don’t try to build on msys, no cython available there

6 years agoAdd some gitignore patterns for Windows
Reuben Thomas [Mon, 29 Jan 2018 13:45:52 +0000 (13:45 +0000)]
Add some gitignore patterns for Windows

6 years agotests/Makefile.am: add EXEEXT suffix to RECODE for Windows
Reuben Thomas [Mon, 29 Jan 2018 13:52:21 +0000 (13:52 +0000)]
tests/Makefile.am: add EXEEXT suffix to RECODE for Windows

It is only needed when running from Python.

6 years agocommon.py: use subprocess.check_output instead of os.popen
Reuben Thomas [Mon, 29 Jan 2018 13:51:16 +0000 (13:51 +0000)]
common.py: use subprocess.check_output instead of os.popen

This is more long-winded, but os.popen doesn't seem to work with
Unix-style paths on Windows.

6 years agomacOS Travis fix: Cython extension needs installed librecode
Reuben Thomas [Sun, 28 Jan 2018 19:07:38 +0000 (19:07 +0000)]
macOS Travis fix: Cython extension needs installed librecode

6 years agoouter.c: fix some incorrect casts when passing pointers to free
Reuben Thomas [Sun, 28 Jan 2018 18:39:04 +0000 (18:39 +0000)]
outer.c: fix some incorrect casts when passing pointers to free

6 years agoAdd missing includes of locale.h
Reuben Thomas [Sun, 28 Jan 2018 00:49:10 +0000 (00:49 +0000)]
Add missing includes of locale.h

6 years agomerged.c: include config.h
Reuben Thomas [Sat, 27 Jan 2018 23:21:24 +0000 (23:21 +0000)]
merged.c: include config.h

6 years agoTravis update
Reuben Thomas [Sat, 27 Jan 2018 21:53:47 +0000 (21:53 +0000)]
Travis update

Don’t install valgrind on macOS, as there’s no suitable python in brew.

Don’t install gettext from source on macOS, as brew’s is new enough.

Simplify some env var setting.

6 years ago.travis.yml: macOS: make keg-only formulæ available to the build
Reuben Thomas [Sat, 27 Jan 2018 18:28:23 +0000 (18:28 +0000)]
.travis.yml: macOS: make keg-only formulæ available to the build

6 years agoTravis: configure --enable-silent-rules, to make overall logs shorter
Reuben Thomas [Sat, 27 Jan 2018 14:21:17 +0000 (14:21 +0000)]
Travis: configure --enable-silent-rules, to make overall logs shorter

6 years agorequest.c: zero realloc’d memory
Reuben Thomas [Sat, 27 Jan 2018 14:14:46 +0000 (14:14 +0000)]
request.c: zero realloc’d memory

For some reason this was being found by Valgrind on Travis, but not on my
dev machine.

6 years agorequest.c: slight simplification of code to handle malloc failure
Reuben Thomas [Sat, 27 Jan 2018 14:14:15 +0000 (14:14 +0000)]
request.c: slight simplification of code to handle malloc failure

6 years agoRemove redundant memset calls zeroing memory
Reuben Thomas [Sat, 27 Jan 2018 13:57:24 +0000 (13:57 +0000)]
Remove redundant memset calls zeroing memory

Now that ALLOC uses calloc.

Also replace a use of malloc then memset with calloc.

6 years agoFix building of lat1{ansel,iso5426}.h from respective .l files
Reuben Thomas [Sat, 27 Jan 2018 13:26:30 +0000 (13:26 +0000)]
Fix building of lat1{ansel,iso5426}.h from respective .l files

6 years agotask.c: slightly improve code and comments
Reuben Thomas [Sat, 27 Jan 2018 12:43:15 +0000 (12:43 +0000)]
task.c: slightly improve code and comments

This is the fruit of an aborted investigation into using pipes all the
time (it won’t work with the present architecture with translations into a
buffer).

It could be achieved by either a) adding one more stage to write to a file,
and having the parent process read that back, or b) adding an extra pipe
back to the parent process, but that would then require non-blocking I/O,
which would involve i) a new type of communication channel (e.g. file
descriptors), and ii) reimplementation, if desired, of buffering.

An overall simpler and more portable solution would be to convert the
parallel code to use threads instead of child processes, so that the output
buffer would remain accessible to the parent process.

6 years agoGet rid of SET_SUBTASK_ERROR macro; use identical recode_if_nogo function
Reuben Thomas [Fri, 26 Jan 2018 21:49:20 +0000 (21:49 +0000)]
Get rid of SET_SUBTASK_ERROR macro; use identical recode_if_nogo function

The function was used much more than the macro anyway.

6 years agorequest.c: improve error reporting
Reuben Thomas [Fri, 26 Jan 2018 21:47:22 +0000 (21:47 +0000)]
request.c: improve error reporting

Make guarantee_nul_terminator report success/failure, and use this value in
its callers.

Add an extra FIXME to scan_options to explain what needs doing there to
report errors.

6 years agonames.c: fix FIXME: retype to avoid ugly casts for argmatch use
Reuben Thomas [Fri, 26 Jan 2018 21:27:33 +0000 (21:27 +0000)]
names.c: fix FIXME: retype to avoid ugly casts for argmatch use

6 years agoFix FIXME: use sigaction instead of signal
Reuben Thomas [Fri, 26 Jan 2018 21:12:12 +0000 (21:12 +0000)]
Fix FIXME: use sigaction instead of signal

Using signal to set a handler is non-portable (according to POSIX! sigh…).

6 years agohtml.c: add explanation to FIXME
Reuben Thomas [Fri, 26 Jan 2018 21:02:31 +0000 (21:02 +0000)]
html.c: add explanation to FIXME

Outputting a BOM into HTML is marked “experimental”. Since there are
situations in which a BOM should not be output, this seems right. Needs
further evaluation.

6 years agoouter.c: fix FIXME: add diagnostic
Reuben Thomas [Fri, 26 Jan 2018 21:01:41 +0000 (21:01 +0000)]
outer.c: fix FIXME: add diagnostic

recode_error can safely be called with NULL outer, and is elsewhere.

6 years agoUpdate po files
Reuben Thomas [Fri, 26 Jan 2018 13:46:59 +0000 (13:46 +0000)]
Update po files

6 years agoAdd more aliases for KOI-8R: RFC 1489 and IBM CP866
Reuben Thomas [Fri, 26 Jan 2018 13:24:47 +0000 (13:24 +0000)]
Add more aliases for KOI-8R: RFC 1489 and IBM CP866

These were commented out. There were also translation tables, but iconv
provides this functionality, so remove them.

6 years agoRun tests with valgrind
Reuben Thomas [Thu, 25 Jan 2018 09:52:41 +0000 (09:52 +0000)]
Run tests with valgrind

Use the valgrind-python.supp suppressions file (latest version from cpython
git), adding wildcard * to end of PyObject_Realloc name to match LTO
symbols. However, even this is not currently enough to run with the standard
/usr/bin/python, so use /usr/bin/python-dbg instead, which does work (with
some extra suppressions). See https://bugs.python.org/issue32666

Remove a bogus setting of PYTHON in tests/Makefile.am

6 years agoFix a potential memory leak in declare_single
Reuben Thomas [Fri, 26 Jan 2018 12:11:33 +0000 (12:11 +0000)]
Fix a potential memory leak in declare_single

6 years agoFix memory leaks
Reuben Thomas [Fri, 26 Jan 2018 11:49:06 +0000 (11:49 +0000)]
Fix memory leaks

Use the existing, but unused, term_routine member of struct recode_step to
register finalisers.

Also add step_table_term_routine, as adding separate finalisers for
different table types is nicer than having to add finalisers for a huge
number of transformers.

Zero-initialise all allocated memory, so we can assume it, and as a
defensive measure.

Move struct ucs2_to_byte from recodext.h into recode.c, its only user.

6 years agocombine.c: minor English fixes in comments
Reuben Thomas [Thu, 25 Jan 2018 16:06:46 +0000 (16:06 +0000)]
combine.c: minor English fixes in comments

6 years agocombine.c: fix missing white space
Reuben Thomas [Thu, 25 Jan 2018 15:37:38 +0000 (15:37 +0000)]
combine.c: fix missing white space

6 years agoRecode.pyx: fix space leaks in Request and Task
Reuben Thomas [Thu, 25 Jan 2018 14:55:35 +0000 (14:55 +0000)]
Recode.pyx: fix space leaks in Request and Task

Incidentally use a more modern way to import the FILE type

6 years agorequest.c: remove a FIXME
Reuben Thomas [Thu, 25 Jan 2018 14:28:54 +0000 (14:28 +0000)]
request.c: remove a FIXME

We don’t need to worry about always ensuring 4 NULs at the end of a buffer
when we might only need 1 or 2.

6 years agosrc/Makefile.am: distribute generated header files
Reuben Thomas [Thu, 25 Jan 2018 09:57:19 +0000 (09:57 +0000)]
src/Makefile.am: distribute generated header files

6 years agoTravis: switch off verbose build
Reuben Thomas [Thu, 25 Jan 2018 09:56:09 +0000 (09:56 +0000)]
Travis: switch off verbose build

Comment it out for debugging use, but for now it makes the logs too long to
read in the nice web presentation (instead one is forced to read the raw
logs), and the Recode test system shouldn’t need verbose logging.

6 years agoRemove ifdeffed-out alias of ‘.’ for ‘RFC 1345’
Reuben Thomas [Tue, 23 Jan 2018 23:37:40 +0000 (23:37 +0000)]
Remove ifdeffed-out alias of ‘.’ for ‘RFC 1345’

Although we will probably not implement ‘.’ to mean “guess the charset” as
suggested in the comment, there’s also no reason to have a catch-all alias
for RFC 1345 now, when iconv would be a better choice.

6 years agoResolve discrepancies between IBM-PC and ibm437
Reuben Thomas [Tue, 23 Jan 2018 23:32:23 +0000 (23:32 +0000)]
Resolve discrepancies between IBM-PC and ibm437

Unfortunately, there appear to be one error and an arguable gap in RFC 1345,
so retain the IBM-PC charset, and document the differences.

6 years agoRemove lat1 alias for Latin-1 (compatibility with Recode 3.2)
Reuben Thomas [Tue, 23 Jan 2018 22:40:20 +0000 (22:40 +0000)]
Remove lat1 alias for Latin-1 (compatibility with Recode 3.2)

That was a very long time ago.

6 years agoMake test diffs go the logical way round: from expected to output
Reuben Thomas [Tue, 23 Jan 2018 22:36:43 +0000 (22:36 +0000)]
Make test diffs go the logical way round: from expected to output

6 years agoRemove built-in applemac module
Reuben Thomas [Tue, 23 Jan 2018 22:26:42 +0000 (22:26 +0000)]
Remove built-in applemac module

Resolve differences with RFC 1345 code. They were caused simply by extra
characters in the latter missing from the former (I compared the two tables
character by character, by eye).

6 years agoAdd LaTeX translations for <, > and ^ (Debian bug #24436)
Reuben Thomas [Tue, 23 Jan 2018 21:50:06 +0000 (21:50 +0000)]
Add LaTeX translations for <, > and ^ (Debian bug #24436)

6 years agofixup ANSEL
Reuben Thomas [Tue, 23 Jan 2018 21:44:08 +0000 (21:44 +0000)]
fixup ANSEL

6 years agoManual: document ANSEL and ISO 5426 support
Reuben Thomas [Tue, 23 Jan 2018 21:30:12 +0000 (21:30 +0000)]
Manual: document ANSEL and ISO 5426 support

6 years agoManual: update portability notes
Reuben Thomas [Tue, 23 Jan 2018 21:29:07 +0000 (21:29 +0000)]
Manual: update portability notes

Mostly remove a section on improving portability, as these days we can
safely assume C99 support.

Also, no longer claim the library is still under development.

6 years agoManual: remove some references to past and future versions of Recode
Reuben Thomas [Tue, 23 Jan 2018 21:03:31 +0000 (21:03 +0000)]
Manual: remove some references to past and future versions of Recode

The past versions are long-dead; the future versions will probably not come
in the shape predicted.

6 years agoManual: some language fixes
Reuben Thomas [Tue, 23 Jan 2018 21:02:22 +0000 (21:02 +0000)]
Manual: some language fixes

6 years agoManual: overhaul and simplify sequencing method description
Reuben Thomas [Tue, 23 Jan 2018 07:24:56 +0000 (07:24 +0000)]
Manual: overhaul and simplify sequencing method description

6 years agoManual: bump copyright dates
Reuben Thomas [Tue, 23 Jan 2018 07:01:16 +0000 (07:01 +0000)]
Manual: bump copyright dates

6 years agoNEWS: add more for 3.7, bump copyright date, fix a typo
Reuben Thomas [Tue, 23 Jan 2018 07:01:04 +0000 (07:01 +0000)]
NEWS: add more for 3.7, bump copyright date, fix a typo

6 years agoAdd get_bytes and put_bytes
Reuben Thomas [Tue, 23 Jan 2018 06:48:48 +0000 (06:48 +0000)]
Add get_bytes and put_bytes

This allows transform_mere_copy to be made efficient in the case of writing
to buffer.

6 years agoAllow pipe filters to signal when they are interrupted again
Reuben Thomas [Mon, 22 Jan 2018 23:35:27 +0000 (23:35 +0000)]
Allow pipe filters to signal when they are interrupted again

Make the interrupted variable, previously static in main,
recode_interrupted, defined in task.c (hence in librecode), so that it can
now be tested at the end of a pipe recode.

6 years agomain.c: clarify a comment slightly
Reuben Thomas [Mon, 22 Jan 2018 23:35:15 +0000 (23:35 +0000)]
main.c: clarify a comment slightly

6 years agoRemove --sequence=files
Reuben Thomas [Mon, 22 Jan 2018 22:22:09 +0000 (22:22 +0000)]
Remove --sequence=files

Assume that any reasonable target OS has virtual memory (on which holding
the data in memory has much the same performance implications as using
files).

6 years agorecodext.h: clarify a comment
Reuben Thomas [Mon, 22 Jan 2018 20:46:09 +0000 (20:46 +0000)]
recodext.h: clarify a comment

6 years agoUse mkstemps to make temporary file names
Reuben Thomas [Mon, 22 Jan 2018 20:42:18 +0000 (20:42 +0000)]
Use mkstemps to make temporary file names

Remove system-specific code.

6 years agotask.c: improve English in a comment
Reuben Thomas [Mon, 22 Jan 2018 20:40:46 +0000 (20:40 +0000)]
task.c: improve English in a comment

6 years agoUse xbinary-io gnulib module to set mode of stdin/stdout
Reuben Thomas [Mon, 22 Jan 2018 13:40:41 +0000 (13:40 +0000)]
Use xbinary-io gnulib module to set mode of stdin/stdout

Also isatty module to detect ttys. No longer need DOS/Windows/etc.-specific
ifdefs.

6 years agotask.c: handle any number of steps, including zero, in perform_sequence
Reuben Thomas [Mon, 22 Jan 2018 01:48:18 +0000 (01:48 +0000)]
task.c: handle any number of steps, including zero, in perform_sequence

Reduce duplication further, increase ugliness a little.

6 years agotask.c: fold perform_pipe_sequence into perform_sequence
Reuben Thomas [Mon, 22 Jan 2018 01:10:23 +0000 (01:10 +0000)]
task.c: fold perform_pipe_sequence into perform_sequence

The result is large and ugly, but much less duplication overall.

The refactoring was done mechanically, to ensure correctness of the result.
It should be possible to simplify further.

6 years agotask.c: make “correct” version of perform_pipe_sequence work
Reuben Thomas [Sun, 21 Jan 2018 23:17:04 +0000 (23:17 +0000)]
task.c: make “correct” version of perform_pipe_sequence work

Finish converting the right-to-left pipeline into a left-to-right version.

6 years agoOverhaul error handling in transform steps (fixes Debian bug #215285)
Reuben Thomas [Sat, 20 Jan 2018 00:01:53 +0000 (00:01 +0000)]
Overhaul error handling in transform steps (fixes Debian bug #215285)

Three main principles were applied:

1. Check all return codes (this fixes Debian bug #215285, data is lost when
no space left on device).
2. Ensure that resources are not leaked (memory and file descriptors).
3. Consistently use the recode error signalling mechanism: rather than
arbitrarily signalling failure on an I/O error, set error level
RECODE_SYSTEM_ERROR, and signal failure according to fail_level.

It proved to be useful to merge perform_{memory,pass}_sequence.

6 years agoAdd some missing sources to the loc target
Reuben Thomas [Sat, 20 Jan 2018 00:09:08 +0000 (00:09 +0000)]
Add some missing sources to the loc target

6 years agomain.c: fix a comment typo
Reuben Thomas [Fri, 19 Jan 2018 13:33:23 +0000 (13:33 +0000)]
main.c: fix a comment typo

6 years agoRemove if before free
Reuben Thomas [Fri, 19 Jan 2018 12:46:06 +0000 (12:46 +0000)]
Remove if before free