Commit Graph

166 Commits

Author SHA1 Message Date
Joachim Nilsson
94b1a78444 src/Makefile: Add -Wextra to CFLAGS
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-12-02 18:25:49 +01:00
Joachim Nilsson
a9d4247c09 Minor, header cleanup, whitespace fixes, comments
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-30 18:20:29 +01:00
Joachim Nilsson
ea79fe70f9 write_history(), read_history(): Check fclose() return value
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 21:40:38 +01:00
Joachim Nilsson
2075dedc80 Remove leading (superfluous) comment
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 17:22:08 +01:00
Joachim Nilsson
54714631e2 Move All rights reserved to next line
All BSD style licenses put this text on a separate line, immediately
following the Copyright line.  The C-News license is confusing enough
to most people, so let's align at least a bit with the norm.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 17:20:21 +01:00
Joachim Nilsson
a70a933698 Modify header guards, __FILE_H__ is reserved for system headers
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 17:17:50 +01:00
Joachim Nilsson
b613db2afb Whitespace + coding style cleanup
- Use Emacs K&R style
- Add missing braces to for() loops
- Fix coding style issues in cli.c example
- Add empty lines to separate sections
- Simplify and de-indent code, check error case first + continue

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 16:40:10 +01:00
Joachim Nilsson
1ace811722 rl_uninitialize(): also free old_search from previous i-search
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 15:32:59 +01:00
Claus Fischer
4b8333ad39 Remove duplicate unique history check
Signed-off-by: Claus Fischer <claus.fischer@clausfischer.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 15:03:01 +01:00
Joachim Nilsson
ed37cef412 Minor whitespace fixes/cleanup
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 15:01:22 +01:00
Joachim Nilsson
2a3b422137 Fix negative array index triggered by i-search
This is a fix to a bug reported by Claus Fischer.  When doing a reversed
i-search on the history, clear_line() sets rl_point to a negative value,
which is later used by ceol().  The intention is to clear the whole line
for the new Search: prompt, but indexing an array with a negative value
is strongly discouraged.

To prevent this negative indexing from happening we check in ceol() for
rl_point < 0, but we quickly notice another side effect: one lingering
character at the end of line when returning from i-search.  The problem
manifests itself more cleary when having a looooo000ooonong prompt.

The fix is to rub out the extra space, insert the i-search string, and
*then* call ceol() again.

Thanks to Claus for pointing this out!

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 14:53:14 +01:00
Claus Fischer
317b43e488 rl_unintialize(): New function, free all memory after use
Free all allocated internal memory and reset variables so
rl_initialize() or readline() may be called again later.

Signed-off-by: Claus Fischer <claus.fischer@clausfischer.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 14:44:24 +01:00
Claus Fischer
ed87f37409 Initialize global variables and reset to NULL on free()
Signed-off-by: Claus Fischer <claus.fischer@clausfischer.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2017-11-29 14:41:50 +01:00
Joachim Nilsson
8078ff69cc Add ABI version info for libtool, start with 0.0.0
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-06 19:56:08 +02:00
Joachim Nilsson
6db7c7d440 Minor cleanup and simplification of build system
- Move 'foreign' declaration from Makefile.am's to configure script
- Move CFLAGS from configure script to src/Makefile.am
- Remove faltering license blurb at top of configure script, no need
  for this since we a) do not care, b) falls under project license

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-06-01 07:26:16 +02:00
Joachim Nilsson
059d97d7a9 Remove Emacs version-control handling
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-05-07 22:42:24 +02:00
Jakub Pawlowski
edc38768ff Add tty_flush() to rl_forced_update_display()
Forcing update should flush, otherwise weird stuff happen when writing
to console asynchronously (cursor is moved, text is not displayed).

Signed-off-by: Jakub Pawlowski <jakubpawlo@gmail.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-28 19:46:53 +01:00
Joachim Nilsson
a1002f6984 Update .gitignore with generated files
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2016-01-27 09:32:19 +01:00
Joachim Nilsson
7abfadd7e6 Attempt to work around slightly bogus Coverity warnings.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-09-10 13:06:39 +02:00
Joachim Nilsson
295f901800 Remove generated files from autoconf et al, run ./autogen.sh instead.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-09-10 10:58:09 +02:00
C0deH4cker
a1ca0d46ac Include <sys/ioctl.h> before calling ioctl() for Clang on OX X
At least when building with Clang on OS X, there is an error on
[line 1120 of editline.c][err] caused by using the `ioctl()` function
without first declaring it by including its header `<sys/ioctl.h>`.
Adding this line makes the build complete without error.

[err]: https://github.com/troglobit/editline/blob/master/src/editline.c#L1120

Signed-off-by: C0deH4cker <c0deh4cker@gmail.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-09-08 08:23:59 +02:00
Joachim Nilsson
9c163ff72b Rename define CONFIG_ANNOYING_NOISE --> CONFIG_TERMINAL_BELL
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-04-06 15:24:28 +02:00
Joachim Nilsson
6a8556733a Add support for disabling default SIGINT and EOF behavior.
This patch adds support for `--disable-eof` and `--disable-sigint` to
the Editline configure script.  With either of these two switches the
`tty_special()` function bypasses the special TTY checks making it
possible to bind Ctrl-C and Ctrl-D to custom callbacks.  This can be
useful if you want to emulate a Cisco style CLI rather than traditional
UNIX.

The user can of course also redefine the VINTR and VEOF special terminal
control characters, but these configure script switches may be easier to
use for some.

Also, the CLI example has been updated to bind Ctrl-D, Ctrl-C and Ctrl-Z
for testing purposes.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-04-06 14:53:47 +02:00
Toby Goodwin
a2bc89db64 Allow Ctrl-D to return EOF
This commit reverts parts of 111fc5e, which originally was intended to
add support for custom key bindings at pos 0, or more specifically, to
be able to change the behavior of Ctrl-D.  However this completely broke
compatibility with the original EOF behavior.

Signed-off-by: Toby Goodwin <toby@paccrat.org>
Signed-off-by: Joachim Nilsson <joachim.nilsson@westermo.se>
2015-04-06 14:46:57 +02:00
Joachim Nilsson
c497555bec editline.c:find_key_in_map() -- Add check to prevent out of bounds access.
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2015-02-01 15:03:19 +01:00
Joachim Nilsson
8fbc87707e Fix out-of-bounds access in user key binding routines.
Coverity CID #56737, #56738

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-11-04 23:50:48 +01:00
Joachim Nilsson
394c4f82a9 Fix suspicious use of sizeof(char **), same as sizeof(char *) but not portable.
Coverity CID #56740, #56741, #56742

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-11-04 23:42:39 +01:00
Joachim Nilsson
e53ccf61f2 Refactor: replace variables named 'new' with non-reserved word.
The word 'new' is a reserved keyword in C++ and C#, replacing it
with something else is one step further to making it possible to
build editline with a C++ compiler.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-11-04 23:19:48 +01:00
Joachim Nilsson
cd50714e29 Fix memory leak in completion handler.
Coverty CID #56739

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-11-04 23:03:32 +01:00
Mattias Walström
7cd7fc4b61 Add support for el_no_hist to disable access to and auto-save of history.
This commit adds a new global variable 'el_no_hist' which can be used
to disable auto-save of history as well as access to history using prev
and next keybindings (up/down arrows).

Signed-off-by: Mattias Walström <lazzer@gmail.com>
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-11-04 22:47:55 +01:00
Joachim Nilsson
bd9c8ddda6 Add some GNU readline compat functions for prompt handling and redisplay
Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-09-17 05:49:06 +02:00
Joachim Nilsson
08b7f57c98 src/sysunix.c: Restart syscalls on spurious EINTR
Handle tcgetattr(), tcsetattr() and ioctl() by wrapping them in
a retry-loop and restarting them when receiving EINTR.

Should fix problem with sporadic error messages on the console
like this one:

     'Failed tcsetattr: Interrupted system call'

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-09-14 03:44:24 +02:00
Joachim Nilsson
29b7f91165 Fix el_no_echo bug leaking secrets to screen and history
This patch makes el_no_echo actually work:

- Don't echo to screen
- Don't save to history

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2014-06-25 03:06:07 +02:00
Joachim Nilsson
33ffb150f2 Cleanup configure.ac and regenerate default configure files. 2013-07-08 16:47:03 +02:00
Joachim Nilsson
4bc12834fe Only clear ScreenCount if write() succeeded. 2013-07-08 16:34:32 +02:00
Joachim Nilsson
c7a6ff9317 Return el_status_t from el_bind_key() and el_bind_key_in_metamap()
The two functions el_bind_key() and el_bind_key_in_metamap() should
not print status message on stderr, but rather return the status of
the key binding operation.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2013-07-08 16:27:57 +02:00
Joachim Nilsson
897a98be55 Export el_del_char() 2013-07-08 16:21:54 +02:00
Joachim Nilsson
111fc5e1fb readline(): Check custom key bindings as well.
Make sure to also check custom key bindings.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2013-07-08 16:21:29 +02:00
Joachim Nilsson
8e81add050 readline(): Check common signals first.
Make sure to check common signals first to prevent other interpretations.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2013-07-08 16:20:01 +02:00
Joachim Nilsson
088dc1d1b2 Move handy macros to global header file, useful when binding keys. 2011-01-06 10:41:07 +01:00
Joachim Nilsson
4f134f1025 Reduce tgetent() buffer size from 2048 to 1024. 2010-08-12 16:27:10 +02:00
Joachim Nilsson
850e36f9db Fix SIGFPE regression in tty_info() introduced in rl_reset_terminal() commit.
When adding support for rl_reset_termial() the tty_info() code was also
refactored.  This however led to the introduction of a bug that caused
tty_cols to be set to zero.  This in turn caused c_possible() to fail
with SIGFPE in el_print_columns().

Regression was introduced in 1c89c9886c
2010-08-12 16:20:29 +02:00
Joachim Nilsson
d72069144e Minor cleanup of unnecessary explicit casts. 2010-08-11 21:19:41 +02:00
Joachim Nilsson
87e69be38b Add support for inhibiting completion: rl_inhibit_completion 2010-08-11 13:14:32 +02:00
Joachim Nilsson
1c89c9886c Refactor tty_info() to make rl_reset_terminal() useful. 2010-08-05 15:14:06 +02:00
Joachim Nilsson
de6ff117bb Implement compat. support for rl_instream and rl_outstream 2010-08-05 13:20:35 +02:00
Joachim Nilsson
5e9177fd18 Add support for el_bind_key() and example usage binding '?' in examples/cli.c
This changeset refactors el_bind_key_in_metamap() into two functions,
adding el_bind_key(), to provide the ability for the user to bind keys
in both the regular and the meta-key maps.

Several useful, but previously internal, functions have been made global to
facilitate the example code mentioned above. These are likely useful to the
user of this library as well:

  el_print_columns() - Display words in columns across a tty_cols wide screen.
  el_ring_bell()     - Can be used as default key binding function.
  el_find_word()     - Returns a copy of the word at rl_point.
2010-08-05 12:48:51 +02:00
Joachim Nilsson
27fcc878a1 Make sure rl_instream defaults to NULL and add rl_outstream. 2010-08-05 02:00:35 +02:00
Joachim Nilsson
5de90af58f Fix new GNU Readline compat function pointers. 2010-08-05 01:56:09 +02:00
Joachim Nilsson
0a75b182b1 Improve GNU readline compat, patch by Steve Tell in 1997 and 1998
This changeset adds support for:
   * rl_prep_terminal(),
   * rl_deprep_terminal(), both of which are only wrappers to rl_ttyset().
   * rl_getc()

and:
   * (*rl_getc_function), defaults to rl_getc()
   * (*rl_event_hook)
   * (*rl_prep_term_function), defaults to rl_prep_terminal()
   * (*rl_deprep_term_function), defaults to rl_deprep_terminal()

For further details, see http://www.cs.unc.edu/~tell/dist/magic-readline.README

Differences from Steve's commit include: signal safety in rl_getc(), restart
read() on EINTR, and make sure to support "int meta_flag" to rl_prep_terminal()
which is the GNU syntax.  To that end I reused the inverse of rl_meta_chars.
2010-08-05 01:08:30 +02:00
Joachim Nilsson
d04bdaf38f Add support for read_history(char *filename) and write_history(char *filename) 2010-08-04 02:23:05 +02:00
Joachim Nilsson
aea0d60478 Remove copyright, not big enough contribution - also, was not even in patch from Mr. Black. 2010-08-04 02:18:44 +02:00
Joachim Nilsson
04a0cbd902 Allocate history scrollback buffer at runtime instead of at configure.
Also make sure "unique history" is enabled by default in configure.
2010-08-04 02:12:19 +02:00
Joachim Nilsson
55aaddbc54 Restore add_history(), for compat and simplify code. 2010-08-03 21:01:01 +02:00
Joachim Nilsson
dde4471eda Merge branch 'master' of ssh://vmlinux.org/pub/git/editline 2010-08-03 00:34:39 +02:00
Joachim Nilsson
76ec5adba6 ANSI-fication and minor cleanup of old OS-9 files. 2010-08-03 00:26:06 +02:00
Joachim Nilsson
80ca9e1811 Restore previously discarded (and incomplete) OS9 backend files. 2010-08-03 00:14:48 +02:00
Joachim Nilsson
b48de203e7 Always build complete.c now that we have changed completion handling.
After the revert of function pointers for rl_complete() and rl_list_possib(),
introduced in v0.2.2, we need to build complete.c for all configurations. The
user should use the rl_set_*_func() calls merged from the Heimdal project's
readline fork.
2010-08-02 16:02:59 +02:00
Joachim Nilsson
f1edf7ae52 Replace previous commit for quoted chars with a much improved one.
1. Simplify code in reposition()
2. Add tty_push() for commonly used operation, reduce code duplication.
3. Fix left() so that it treats 8-bit chars as one when not in meta-mode.
4. Replace isalnum() with homegrown implementation that understands 8-bit
   and control chars.
5. Fix ceol() before introducing ANSI "kill-to-end-of-line" escape code.

This actually seems to work, previously I erronesouly used an UTF-8
terminal for testing.  Which of course broke the test on an ISO-8859-1
[only] terminal.
2010-07-30 02:03:46 +02:00
Joachim Nilsson
f617f84293 Fix display of quoted (contro) characters w/o breaking 8-bit display 2010-07-26 02:09:15 +02:00
Joachim Nilsson
bde0c0c9d6 Cuddle else statments, that's the way of the samurai - also minor cleanup. 2010-07-26 02:03:31 +02:00
Joachim Nilsson
02acd55b2e Support for capitalizing words (M-c) from Festival speech-tools by Alan W Black <awb()cstr!ed!ac!uk> 2010-07-26 01:44:18 +02:00
Joachim Nilsson
167059d159 Obfuscate email address 2010-07-25 22:22:56 +02:00
Joachim Nilsson
20c55a58da Add el_bind_key_in_metamap() from Festival speech-tools.
Support for Meta key binding imported from Festival speech-tools, author
Alan W Black <awb()cstr!ed!ac!uk>.  Code released under the original license.
2010-07-25 22:17:10 +02:00
Joachim Nilsson
0d9ce0ce06 Refactor of variable names, for improved readline compat. 2010-07-25 22:14:14 +02:00
Joachim Nilsson
67e9aa3f2b Revert broken Debian patch for 8-bit char input, fix tty_show() instead.
This changeset fixes an old Debian patch that attempted to fix the display
of 8-bit characters in the function emacs().  It accidentally crippled the
function of M-d and M-DEL.  The latter was however also broken by being
mapped to wipe(), more on that below.

The real fix is to set rl_meta_chars to 0 by default and in the tty_show()
function, which tried to be smart and output control and meta characters
(in the wrong order as well).  Simply disabling the special code for output
of control characters fixes 8-bit input.

We also nuke the old and broken wipe() function that was mapped to M-DEL,
instead we map that key binding to bk_kill_word(), which works.
2010-07-25 22:01:04 +02:00
Joachim Nilsson
f16cbece5a Rename Signal --> el_intr_pending. From Festival speech-tools. 2010-07-24 03:46:58 +02:00
Joachim Nilsson
be921400bb Merge el_no_echo patch from Festival speech-tools editline fork 2010-07-24 03:38:25 +02:00
Joachim Nilsson
83e4837f39 Remove unused CHAR type and replace SIZE_T with size_t, we check for that. 2010-07-24 03:12:45 +02:00
Joachim Nilsson
a7eea67253 Cast size_t to int, confuses some compilers otherwise. 2010-07-24 03:09:00 +02:00
Joachim Nilsson
8e13c7b5ae Fix memory leak 2010-07-24 03:05:23 +02:00
Joachim Nilsson
02ea37e4de Clarify code when CONFIG_ANSI_ARROWS is selected. 2010-07-24 02:52:51 +02:00
Joachim Nilsson
c7b78df006 Fix lingering bug, post incrementing pointers is almost never a good idea. 2010-07-24 02:46:04 +02:00
Joachim Nilsson
5a8ad742d9 Adding -Wcast-qual revealed some more interesting casts. 2010-07-24 02:39:45 +02:00
Joachim Nilsson
522e534448 Remove unnecessary casts. 2010-07-24 02:21:28 +02:00
Joachim Nilsson
a848011073 Move strdup() fallback implementation to platform code. 2010-07-24 02:02:56 +02:00
Joachim Nilsson
ceb1995733 Add fallback backspace in case tgetstr("le") fails. 2010-07-24 02:02:14 +02:00
Joachim Nilsson
98b846c8b1 Revert function pointers for rl_complete() and rl_list_possib() introduced in 0.2.2.
Instead merge afd8b4de9dca8ec6afc3 from http://github.com/heimdal/heimdal.git project.
This lets rl_complete() and rl_list_possib() become wrapper functions calling a set of
function pointers, set using rl_set_complete_func() and rl_set_list_possib_funct().

Each wrapper has a fallback to do filename completion, which in turn can be disabled
by leaving out --enable-default-complete from the configure line.

This change, admittedly quite intrusive for a library, is a better implementation in
many ways.  For one it is much more readable, but it also enables further adoption of
other editline forks as well as a simpler implementation of GNU Readline function
pointers rl_completion_entry_function and rl_attempted_completion_function at a later
stage.

My apologies to everyone for whom this change breaks backwards compatibility.  For
help on converting your code, please see examples/cli.c.
2010-07-24 00:50:40 +02:00
Joachim Nilsson
511a1a65a4 Nuke NEW, DISPOSE, RENEW, and COPYFROMTO macros, by Johan Danielsson
This is a manual merge of 98c988dd10888cfb72c4 from http://github.com/heimdal/heimdal
2010-07-23 11:01:51 +02:00
Joachim Nilsson
b51dad6408 Minor fixes from changeset a5f54865d41c3f181a06 from Heimdal project http://github.com/heimdal/heimdal 2010-07-23 09:46:49 +02:00
Joachim Nilsson
536dcacb06 Rename and globalize internal data structures to make more similar to GNU Readline 2010-07-20 00:18:20 +02:00
Joachim Nilsson
009d3f0568 Make UNIQUE_HISTORY configurable, remove TODO items and old Minix Makefile 2010-07-19 04:13:11 +02:00
Joachim Nilsson
6d2f4c99a3 Add configurable support for using termcap library for terminal size. 2010-07-18 18:57:07 +02:00
Joachim Nilsson
8b85bab216 Improve handling of ioctl() errors, cleanup and comment on ordering.
The ordering of alternative rl_ttyset() implementations is important.
We have chosen to place the most common, most portable, code first
and then in lesser order.  Ending with the sgtty.h based code, which
I cannot test on GNU/Linux.  Will test on OpenBSD later.

Also added Emacs indentation style to make it easier to follow the
original style of Mr Turner and Salz.
2010-07-18 16:07:02 +02:00
Joachim Nilsson
d76ca9f1d6 Update Makefile.in's after last configure.ac change 2010-07-18 12:55:44 +02:00
Joachim Nilsson
98fbc6cd41 Spellcheck comment 2010-07-18 05:22:45 +02:00
Joachim Nilsson
4c4a7e808c Make scrollback history (HIST_SIZE) configurable 2010-07-18 05:19:03 +02:00
Joachim Nilsson
7d0aff5ba3 Remove obsolete checks, all current systems today have dirent.h 2010-07-18 03:37:23 +02:00
Joachim Nilsson
f874ad60ab Configure sets HAVE_STRDUP, check for that instead of NEED_STRDUP. 2010-07-18 03:36:05 +02:00
Joachim Nilsson
2d2ec7db98 Improve GCC warning and error triggers and also improve check of GCC version.
Configure snippets shamelessly stolen from http://www.libusb.org/browser/configure.ac
2010-07-18 02:51:25 +02:00
Joachim Nilsson
89261724d2 Fix function declaration, non-ANSI style. 2010-07-18 02:42:05 +02:00
Joachim Nilsson
885475fc49 Fix invalid function pointer declarations. 2010-07-18 02:41:38 +02:00
Joachim Nilsson
ad0fee03aa Fix recently broken --enable-default-complete and simplify configure script. 2010-07-18 02:30:30 +02:00
Joachim Nilsson
da4bd00eef Fix qsort() wrapper definition, missing const directives. 2010-07-18 02:28:52 +02:00
Joachim Nilsson
3c4cf96bfc More cleanup. Added license blurb to top of all source files.
Remove all old $Id:$ and similar constructs, they don't provide any
additional benefit anymore.

Add configure options for toggling terminal bell and  toying with
SIGSTOP using Ctrl-Z.  Rename config option for ANSI keys to get
a consistent namespace.

Also did some work on ANSI-fication of function definitions, lot's
of that was still lingering around.
2010-07-18 01:41:18 +02:00
Joachim Nilsson
34a314c8e7 ANSI-fication and lots of minor fixes inspired by Sparse warnings. 2010-07-17 22:38:05 +02:00
Joachim Nilsson
722dae35a2 Change mode 0644 on all source files. 2010-07-17 22:08:32 +02:00
Joachim Nilsson
e16f245672 Migrate to libtool and regenerate configure script 2010-07-17 22:00:06 +02:00
Joachim Nilsson
87edc33897 Minor cleanup before release. 2010-03-09 21:18:03 +01:00
Joachim Nilsson
8ff3272698 Add support for automake silent builds 2010-01-16 22:42:21 +01:00