summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntti-Juhani Kaijanaho <ajk@debian.org>2006-01-28 21:34:27 +0100
committerAntti-Juhani Kaijanaho <ajk@debian.org>2006-01-28 21:34:27 +0100
commit19c7e865145fceee28b54f22188f268ac54fc350 (patch)
treeaee6c33f5991a4684ff1bafd17c9780bf1f799d4
parent07ee094ba99bdf19350a52429eda4045393499cf (diff)
downloaddctrl-tools-19c7e865145fceee28b54f22188f268ac54fc350.tar.gz
Import 2.0
-rw-r--r--Makefile42
-rw-r--r--TODO5
-rw-r--r--debian/NEWS61
-rw-r--r--debian/NEWS.superseded49
-rw-r--r--debian/README.build-system2
-rw-r--r--debian/changelog22
-rw-r--r--debian/control1
-rw-r--r--debian/rules10
-rw-r--r--fieldtrie.c2
-rw-r--r--grep-dctrl.1.cp82
-rw-r--r--grep-dctrl.c89
-rw-r--r--i18n.h1
-rw-r--r--langs.mk1
-rw-r--r--msg.h12
-rw-r--r--paragraph.c8
-rw-r--r--po/ca.po230
-rw-r--r--po/fi.po226
-rw-r--r--predicate.c2
-rw-r--r--rc.c2
19 files changed, 693 insertions, 154 deletions
diff --git a/Makefile b/Makefile
index 2a78c4f..f370ff3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,10 @@
-sysconf = /etc
+sysconfdir = /etc
+localedir = /usr/share/locale
CC = gcc -std=gnu99
-CFLAGS = -O2 -g -Wall -DENABLE_L_DEBUG -D_GNU_SOURCE -DSYSCONF=\"$(sysconf)\"
+CFLAGS = -O2 -g -Wall -DENABLE_L_DEBUG -D_GNU_SOURCE -DSYSCONF=\"$(sysconfdir)\" \
+ -DHAVE_GETTEXT -DPACKAGE=\"grep-dctrl\" -DLOCALEDIR=\"$(localedir)\"
CFLAGS += -DVERSION=\"$(shell dpkg-parsechangelog | grep '^Version' | cut -b10-)\"
CFLAGS += -DMAINTAINER='"$(shell grep ^Maintainer: debian/control | cut -b13-)"'
@@ -12,10 +14,22 @@ CFLAGS += -DMAINTAINER='"$(shell grep ^Maintainer: debian/control | cut -b13-)"'
#LDLIBS = -lpub
-all : grep-dctrl grep-dctrl.1
+obj = grep-dctrl.o msg.o predicate.o util.o fsaf.o paragraph.o \
+ fieldtrie.o rc.o strutil.o getaline.o fnutil.o
+src = $(obj:.o=.c)
-grep-dctrl : grep-dctrl.o msg.o predicate.o util.o fsaf.o paragraph.o \
- fieldtrie.o rc.o strutil.o getaline.o fnutil.o
+# List of translated languages is given in langs.mk
+include langs.mk
+
+all : grep-dctrl grep-dctrl.1 mo
+
+pot : po/grep-dctrl.pot
+
+po : $(foreach f,$(langs),po/$(f).po)
+
+mo : $(foreach f,$(langs),po/$(f).mo)
+
+grep-dctrl : $(obj)
%.test : %.test.o
@@ -25,7 +39,23 @@ grep-dctrl : grep-dctrl.o msg.o predicate.o util.o fsaf.o paragraph.o \
%.1 : %.1.cp
sed 's*SYSCONF*$(sysconf)*' $< > $@
+xgettext_opts=--copyright-holder="Antti-Juhani Kaijanaho" \
+ --msgid-bugs-address="ajk@debian.org" -kN_ -k_
+
+po/%.po : po/grep-dctrl.pot
+ msgmerge -q -U --backup=existing $@ $^
+
+po/%.mo : po/%.po
+ msgfmt -c --statistics -o $@ $<
+
+po/grep-dctrl.pot : $(src)
+ xgettext $(xgettext_opts) -d grep-dctrl $^
+ mv grep-dctrl.po $@
+
fsaf.test : fsaf.test.o msg.o
clean :
- $(RM) core grep-dctrl grep-dctrl.1 *.o
+ $(RM) core grep-dctrl grep-dctrl.1 *.o po/*.mo TAGS
+
+tags :
+ etags *.[hc]
diff --git a/TODO b/TODO
index 3391d90..8cd0ca5 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,11 @@
Things left to be done on grep-dctrl:
* Write a good Texinfo manual.
* Do translations of the messages to other languages
- (we now have English).
+ (we now have Catalan, English and Finnish).
* Fix any bugs.
+ * Add requested features (see
+http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=pkg&data=grep-dctrl&sev-inc=wishlist
+ )
If you want to help with one of these (or you have some other ideas
for grep-dctrl), contact <ajk@debian.org>.
diff --git a/debian/NEWS b/debian/NEWS
index 97546a6..e7062a9 100644
--- a/debian/NEWS
+++ b/debian/NEWS
@@ -1,49 +1,26 @@
-grep-dctrl (1.104) unstable; urgency=low
+grep-dctrl (2.0) unstable; urgency=low
- One of the documented regressions have been removed in this version:
- multiple field names in -F and multiple -F options in one atom are
- again supported.
-
- -- Antti-Juhani Kaijanaho <ajk@debian.org> Sat, 3 Jan 2004 20:09:06 +0200
-
-grep-dctrl (1.103) unstable; urgency=low
-
- The annoying banner which was added in version 1.100 and which asked
- for testing has been removed. The banner logic used the dotfile
- ~/.grep-dctrl-banner-shown, which can now be safely removed from all
- home directories. The banner logic only ever existed in unstable; it
- was never in any version of grep-dctrl that was released with Debian
- stable.
+ This entry describes changes since the last version in stable, 1.9,
+ released in July 2001.
- Grep-dctrl now adheres to the same exit value conventions as grep(1).
- It also supports grep's -q option.
-
- -- Antti-Juhani Kaijanaho <ajk@debian.org> Thu, 1 Jan 2004 20:44:10 +0200
-
-grep-dctrl (1.100) unstable; urgency=low
-
- This version was a total rewrite of grep-dctrl. This added several
- new features, made it run generally faster and, of course, added some
- bugs and regressions.
+ Grep-dctrl has been completely rewritten. It is now faster than
+ before, in some cases even an order of magnitude faster, and it is now
+ much easier to add new features.
- The big new feature is support for boolean queries. The new feature
- allows combining searches arbitrarily using propositional connectives
- (and, or and not). The command line syntax has been extended to
- support this feature, but all old invocations work the same (modulo
- bugs and regressions). See the manual page for more information.
+ Speaking of new features, the major addition since 1.9 is the ability
+ to use the full descriptive power of propositional calculus to
+ combining searches. Basically, putting --and between two old-style
+ searches combines them with AND, and --or does the same with OR.
+ There is also a --not. See the grep-dctrl(1) manual page for more
+ information.
- There are also several known regressions (presented here in order
- of severity):
- - The -Ffoo,bar,baz feature that allows searching in multiple fields
- is not supported. However, this is not that bad, as the same effect
- can be obtained by using the new boolean query syntax (ie. instead of
- saying -FPackage,Description foo, say -FPackage foo -o -FDescription
- foo).
- - There is no longer any internationalization support and hence no
- translations of messages.
+ The option -c now is synonymous with --count.
- This version added an annoying banner asking for testing. It has been
- later removed.
+ There is a new -d switch that selects for display the _short description_
+ (the first line of the "Description" field).
- -- Antti-Juhani Kaijanaho <ajk@debian.org> Thu, 1 Jan 2004 20:37:52 +0200
+ Grep-dctrl now adheres to the same exit value conventions as grep(1).
+ It also supports GNU grep's -q and --silent options.
+
+ -- Antti-Juhani Kaijanaho <ajk@debian.org> Wed, 7 Jan 2004 02:08:30 +0200
diff --git a/debian/NEWS.superseded b/debian/NEWS.superseded
new file mode 100644
index 0000000..97546a6
--- /dev/null
+++ b/debian/NEWS.superseded
@@ -0,0 +1,49 @@
+grep-dctrl (1.104) unstable; urgency=low
+
+ One of the documented regressions have been removed in this version:
+ multiple field names in -F and multiple -F options in one atom are
+ again supported.
+
+ -- Antti-Juhani Kaijanaho <ajk@debian.org> Sat, 3 Jan 2004 20:09:06 +0200
+
+grep-dctrl (1.103) unstable; urgency=low
+
+ The annoying banner which was added in version 1.100 and which asked
+ for testing has been removed. The banner logic used the dotfile
+ ~/.grep-dctrl-banner-shown, which can now be safely removed from all
+ home directories. The banner logic only ever existed in unstable; it
+ was never in any version of grep-dctrl that was released with Debian
+ stable.
+
+ Grep-dctrl now adheres to the same exit value conventions as grep(1).
+ It also supports grep's -q option.
+
+ -- Antti-Juhani Kaijanaho <ajk@debian.org> Thu, 1 Jan 2004 20:44:10 +0200
+
+grep-dctrl (1.100) unstable; urgency=low
+
+ This version was a total rewrite of grep-dctrl. This added several
+ new features, made it run generally faster and, of course, added some
+ bugs and regressions.
+
+ The big new feature is support for boolean queries. The new feature
+ allows combining searches arbitrarily using propositional connectives
+ (and, or and not). The command line syntax has been extended to
+ support this feature, but all old invocations work the same (modulo
+ bugs and regressions). See the manual page for more information.
+
+ There are also several known regressions (presented here in order
+ of severity):
+ - The -Ffoo,bar,baz feature that allows searching in multiple fields
+ is not supported. However, this is not that bad, as the same effect
+ can be obtained by using the new boolean query syntax (ie. instead of
+ saying -FPackage,Description foo, say -FPackage foo -o -FDescription
+ foo).
+ - There is no longer any internationalization support and hence no
+ translations of messages.
+
+ This version added an annoying banner asking for testing. It has been
+ later removed.
+
+ -- Antti-Juhani Kaijanaho <ajk@debian.org> Thu, 1 Jan 2004 20:37:52 +0200
+
diff --git a/debian/README.build-system b/debian/README.build-system
index 8e7108e..f51db3c 100644
--- a/debian/README.build-system
+++ b/debian/README.build-system
@@ -1,5 +1,5 @@
-$Id: README.build-system,v 1.2 2000/04/25 21:58:52 ajk Exp $
+$Id: README.build-system,v 1.7 2004/01/06 10:30:17 ajk Exp $
This package uses a new experimental debian/rules helper, librules.mk,
written by Antti-Juhani Kaijanaho <ajk@debian.org>. Documentation for
diff --git a/debian/changelog b/debian/changelog
index c6312c5..abd84e9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,25 @@
+grep-dctrl (2.0) unstable; urgency=low
+
+ * The Polish Release.
+ * Internationalized again, thanks to Jordi Mallach for help
+ * Now includes Catalan messages, courtesy of Jordi Mallach
+ * Also includes Finnish messages (my own translation, with thanks to
+ Tommi Vainikainen)
+ * debian/NEWS: Moved old 1.10x-entries to debian/NEWS.superseded
+ * debian/NEWS: Document everything since 1.9
+ * debian/rules: ./NEWS is no longer installed, debian/NEWS is better
+ * grep-dctrl.c (finish_atom): Zero args->num_search_fields. This fixes
+ a particularly nasty unreported bug, where the right-hand side of an
+ --and was essentially ignored.
+ * The above changes, along with the changes in 1.103 and 1.104,
+ closes: #208646 (Unsuitable for testing)
+ * debian/control [Build-Depends]: Add gettext
+ * TODO: Updated.
+ * grep-dctrl.1.cp: Updated messages in DIAGNOSTICS.
+ * grep-dctrl.1.cp: Mention ara(1) in SEE ALSO.
+
+ -- Antti-Juhani Kaijanaho <ajk@debian.org> Wed, 7 Jan 2004 03:09:44 +0200
+
grep-dctrl (1.104) unstable; urgency=low
* grep-dctrl.c (parse_option [case 's']): free carg after use
diff --git a/debian/control b/debian/control
index 3ce1ab5..0c7e754 100644
--- a/debian/control
+++ b/debian/control
@@ -3,6 +3,7 @@ Section: utils
Priority: optional
Maintainer: Antti-Juhani Kaijanaho <ajk@debian.org>
Standards-Version: 3.6.1
+Build-Depends: gettext
Package: grep-dctrl
Architecture: any
diff --git a/debian/rules b/debian/rules
index 71ed474..fa68215 100644
--- a/debian/rules
+++ b/debian/rules
@@ -6,6 +6,8 @@ librules_interface = 2
librules_native_pkg=yes
include debian/librules.mk
+include langs.mk
+
debian/stamp/build: #debian/stamp/build-configure
$(MAKE)
touch $@
@@ -42,7 +44,13 @@ debian/stamp/binary/grep-dctrl: debian/stamp/build
$(install_symlink) grep-dctrl.1.gz $(man1dir)/$$dest.1.gz ; \
done
# Install the supporting documentation.
- $(install_nonex) TODO NEWS Compatibility $(docdir)
+ $(install_nonex) TODO Compatibility $(docdir)
+# Install message catalogues
+ set -e ; for lang in $(langs) ; do \
+ $(install_dir) $(rootdir)/usr/share/locale/$$lang/LC_MESSAGES ; \
+ $(install_nonex) po/$$lang.mo \
+ $(rootdir)/usr/share/locale/$$lang/LC_MESSAGES/$(package).mo ; \
+ done
# Install config file information
$(install_nonex) debian/conffiles $(rootdir)/DEBIAN
# Get the shared library deps
diff --git a/fieldtrie.c b/fieldtrie.c
index 3d6019a..c9e5418 100644
--- a/fieldtrie.c
+++ b/fieldtrie.c
@@ -66,7 +66,7 @@ void fieldtrie_clear(fieldtrie_t * trie)
struct field_bucket * b = trie->fields[i];
while (b != 0) {
struct field_bucket * bn = b->next;
- free(b);
+ free(b);
b = bn;
}
trie->fields[i] = 0;
diff --git a/grep-dctrl.1.cp b/grep-dctrl.1.cp
index 50e7fdd..d958861 100644
--- a/grep-dctrl.1.cp
+++ b/grep-dctrl.1.cp
@@ -340,67 +340,54 @@ a match is found regardless of whether there have been non-fatal
errors.
.PP
These messages are emitted in log levels "fatal" and "important".
-.B This list is out of date.
-.IP "you can only use -s once"
-You must give all fields to show in one -s command. Usually many -s's
-are typos anyway, so heed this message: remove one of the -s's or
-merge all of them into one -s.
-.IP "no such log level"
-The argument to -l was invalid.
-.IP "cumulative field name exceeds maximum length"
-The combined length of the argument to all -F options given may not
-exceed 512 bytes. Longer arguments cannot be used.
-.IP "too many fields to search in"
-Too many fields were specified for searchin in. This number is
-limited to 256.
-.IP "output field spec exceeds maximum length"
-The argument to -s was too long; it is restricted to 512 bytes.
-Longer arguments cannot be used.
-.IP "too many output fields"
-The argument to -s had too many field names in it. This number is
-limited to 256.
-.IP "do not use both -e and -r options"
-The pattern cannot be both a standard POSIX regular expression and an
-extended POSIX regular expression at the same time. You must use at
-most one of the options -e and -r; using both does not make sense.
-.IP "I'm broken - please report this to <gaia@iki.fi>"
-An internal consistency check failed. Please, report this bug.
+Additional messages may be provided by the system libraries.
.IP "a pattern is mandatory"
-You must specify a pattern to be searched.
+You must specify a pattern to be searched for.
+.IP "a predicate is required"
+No predicate was specified, but one is required.
.IP "cannot find enough memory"
More memory was needed than was available. This error may be
transient, that is, if you try again, all may go well.
-.IP "don't know how to do an exact regex match"
-Currently you cannot do exact match searches with regular expressions.
.IP "cannot suppress field names when showing whole paragraphs"
When you do not use the -s switch,
.B grep-dctrl
just passes the matching paragraphs through, not touching them any
way. This means, for example, that you can only use -n when you use
-s.
-.IP "need a file name to grep"
-For some reason no file name is available. This means that the configuration
-file did not list a default file name for this name of the program, and no
-file name was given on the command line.
+.IP "inconsistent atom modifiers"
+Conflicting atom modifiers were used; for example, perhaps both -X and
+-e were specified for the same atom.
+.IP "missing ')' in command line"
+There were more opening than closing parentheses in the given
+predicate.
+.IP "no such log level"
+The argument to -l was invalid.
+.IP "unexpected ')' in command line"
+There was no opening parenthesis that would match some closing
+parenthesis in the command line.
+.IP "unexpected end of file"
+The input file is broken: it ends before it should.
+.IP "unexpected end of line"
+The input file is broken: a line ends before it should.
+.IP "predicate is too complex"
+The predicate's complexity (the number of atoms and connectives)
+exceed compile-time limits.
+.IP "read failure or out of memory"
+There was a problem reading the configuration file. Maybe there was a
+transput error; maybe memory was exhausted. This error may be
+transient, that is, if you try again, all may go well.
+.IP "syntax error in command line"
+There is a problem in the command line. Look, and you shall find it.
.IP "syntax error: need a executable name"
There is a problem in the configuration file. Look, and you shall find it.
.IP "syntax error: need an input file name"
There is a problem in the configuration file. Look, and you shall find it.
-.SH COMPATIBILITY
-If you use grep-dctrl in a Debian package, you should depend on the
-grep-dctrl package and heed the following compatibility notes:
-.PP
-.IP "Always call only the \fBgrep-dctrl\fR executable."
-Although the \fBgrep-status\fR and \fBgrep-available\fR symlinks are installed
-by default, this may change in the future. Those symlinks are meant
-for manual and not scripted use.
-.IP "Always specify an explicit file name"
-Don't rely on the implicit file name feature. The system
-administrator may have changed the default file name. You should
-always specify the "-" file, too.
-.IP "Not all features have been with us in every version"
-Check if any of the features you use is mentioned in the changelog.
-Use a versioned dependency on grep-dctrl, if it is necessary.
+.IP "too many file names"
+The number of file names specified in the command line exceeded a
+compile-time limit.
+.IP "too many output fields"
+The argument to -s had too many field names in it. This number is
+limited to 256.
.SH FILES
.IP SYSCONF/grep-dctrl.rc
See the next file.
@@ -428,6 +415,7 @@ Ian Jackson et al.: Debian Packaging Manual. Published as the Debian
package packaging-manual. Also available in the Debian website. The
Debian project, 2003.
.PP
+.BR ara (1),
.BR apt-cache (1),
.BR dpkg (8),
.BR dpkg-awk (1),
diff --git a/grep-dctrl.c b/grep-dctrl.c
index b0574fa..ead083e 100644
--- a/grep-dctrl.c
+++ b/grep-dctrl.c
@@ -27,6 +27,7 @@
#include <unistd.h>
#include "fnutil.h"
#include "fsaf.h"
+#include "i18n.h"
#include "msg.h"
#include "paragraph.h"
#include "predicate.h"
@@ -39,7 +40,7 @@ const char * argp_program_bug_address = MAINTAINER;
const char description [] = "Description";
size_t description_inx;
-static char progdoc [] = "grep-dctrl -- grep Debian control files";
+static char progdoc [] = N_("grep-dctrl -- grep Debian control files");
#define OPT_CONFIG 256
#define OPT_OPTPARSE 257
@@ -118,28 +119,28 @@ end:
static struct argp_option options[] = {
#ifdef BANNER
- { "banner", 'B', 0, 0, "Show the testing banner." },
+ { "banner", 'B', 0, 0, N_("Show the testing banner.") },
#endif
- { "errorlevel", 'l', "LEVEL", 0, "Set debugging level to LEVEL." },
- { "field", 'F', "FIELD,FIELD,...", 0, "Restrict pattern matching to the FIELDs given." },
- { 0, 'P', 0, 0, "Shorthand for -FPackage" },
- { "show-field", 's', "FIELD,FIELD,...", 0, "Show only the body of these fields from the matching paragraphs." },
- { 0, 'd', 0, 0, "Show only the first line of the Description field from the matching paragraphs." },
- { "no-field-names", 'n', 0, 0, "Suppress field names when showing specified fields." },
- { "eregex", 'e', 0, 0, "Regard the pattern as an extended POSIX regular expression." },
- { "regex", 'r', 0, 0, "The pattern is a standard POSIX regular expression." },
- { "ignore-case", 'i', 0, 0, "Ignore case when looking for a match." },
- { "invert-match", 'v', 0, 0, "Show only paragraphs that do not match." },
- { "count", 'c', 0, 0, "Show only the count of matching paragraphs." },
- { "config-file", OPT_CONFIG, "FNAME", 0, "Use FNAME as the config file." },
- { "exact-match", 'X', 0, 0, "Do an exact match." },
- { "copying", 'C', 0, 0, "Print out the copyright license." },
- { "and", 'a', 0, 0, "Conjunct predicates." },
- { "or", 'o', 0, 0, "Disjunct predicates." },
- { "not", '!', 0, 0, "Negate the following predicate." },
- { "debug-optparse", OPT_OPTPARSE, 0, 0, "Debug option parsing." },
- { "quiet", 'q', 0, 0, "No output to stdout" },
- { "silent", OPT_SILENT, 0, 0, "No output to stdout" },
+ { "errorlevel", 'l', N_("LEVEL"), 0, N_("Set debugging level to LEVEL.") },
+ { "field", 'F', N_("FIELD,FIELD,..."), 0, N_("Restrict pattern matching to the FIELDs given.") },
+ { 0, 'P', 0, 0, N_("Shorthand for -FPackage") },
+ { "show-field", 's', N_("FIELD,FIELD,..."), 0, N_("Show only the body of these fields from the matching paragraphs.") },
+ { 0, 'd', 0, 0, N_("Show only the first line of the \"Description\" field from the matching paragraphs.") },
+ { "no-field-names", 'n', 0, 0, N_("Suppress field names when showing specified fields.") },
+ { "eregex", 'e', 0, 0, N_("Regard the pattern as an extended POSIX regular expression.") },
+ { "regex", 'r', 0, 0, N_("The pattern is a standard POSIX regular expression.") },
+ { "ignore-case", 'i', 0, 0, N_("Ignore case when looking for a match.") },
+ { "invert-match", 'v', 0, 0, N_("Show only paragraphs that do not match.") },
+ { "count", 'c', 0, 0, N_("Show only the count of matching paragraphs.") },
+ { "config-file", OPT_CONFIG, N_("FNAME"),0, N_("Use FNAME as the config file.") },
+ { "exact-match", 'X', 0, 0, N_("Do an exact match.") },
+ { "copying", 'C', 0, 0, N_("Print out the copyright license.") },
+ { "and", 'a', 0, 0, N_("Conjunct predicates.") },
+ { "or", 'o', 0, 0, N_("Disjunct predicates.") },
+ { "not", '!', 0, 0, N_("Negate the following predicate.") },
+ { "debug-optparse", OPT_OPTPARSE, 0, 0, N_("Debug option parsing.") },
+ { "quiet", 'q', 0, 0, N_("No output to stdout") },
+ { "silent", OPT_SILENT, 0, 0, N_("No output to stdout") },
{ 0 }
};
@@ -201,7 +202,7 @@ struct arguments {
struct atom * clone_atom(struct arguments * args)
{
if (args->p.num_atoms >= MAX_ATOMS) {
- message(L_FATAL, "predicate is too complex", 0);
+ message(L_FATAL, _("predicate is too complex"), 0);
fail();
}
struct atom * atom = get_current_atom(&args->p);
@@ -233,7 +234,7 @@ static void finish_atom(struct arguments * args)
{
struct atom * atom = get_current_atom(&args->p);
if (atom->pat == 0) {
- message(L_FATAL, "A pattern is mandatory.", 0);
+ message(L_FATAL, _("A pattern is mandatory."), 0);
fail();
}
for (size_t i = 0; i < args->num_search_fields; i++) {
@@ -241,6 +242,7 @@ static void finish_atom(struct arguments * args)
atom->field_name = args->search_fields[i];
predicate_finish_atom(&args->p);
}
+ args->num_search_fields = 0;
}
/* Pop off one stack state, inserting the associated instructions to
@@ -270,7 +272,7 @@ static void leave(struct arguments * args, int paren)
static void prim_enter(struct arguments * args, const enum state state, const int insn)
{
if (args->top >= MAX_OPS) {
- message(L_FATAL, "predicate is too complex", 0);
+ message(L_FATAL, _("predicate is too complex"), 0);
fail();
}
// args->stack[args->top].insn = insn;
@@ -291,7 +293,7 @@ static void prim_enter(struct arguments * args, const enum state state, const in
static void enter(struct arguments * args, const enum state state, const int insn)
{
if (args->state == STATE_FINISHED) {
- message(L_FATAL, "syntax error in command line", 0);
+ message(L_FATAL, _("syntax error in command line"), 0);
fail();
}
while (args->state < state || (state != STATE_NEG && args->state == state)) {
@@ -308,7 +310,7 @@ static void finish(struct arguments * args)
{
while (args->top > 0) {
if (args->state == STATE_PAREN) {
- message(L_FATAL, "missing ')' in command line", 0);
+ message(L_FATAL, _("missing ')' in command line"), 0);
fail();
}
leave(args, 0);
@@ -331,7 +333,7 @@ static struct atom * enter_atom(struct arguments * args)
return &args->p.atoms[args->p.num_atoms-1];
}
if (args->p.num_atoms >= MAX_ATOMS) {
- message(L_FATAL, "predicate is too complex", 0);
+ message(L_FATAL, _("predicate is too complex"), 0);
fail();
}
ENTER(STATE_ATOM, I_PUSH(args->p.num_atoms));
@@ -435,7 +437,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state)
debug_message("parse_opt: X", 0);
atom = ENTER_ATOM;
if (atom->mode != M_SUBSTR) {
- message(L_FATAL, "inconsistent atom modifiers", 0);
+ message(L_FATAL, _("inconsistent atom modifiers"), 0);
fail();
}
atom->mode = M_EXACT;
@@ -444,7 +446,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state)
debug_message("parse_opt: r", 0);
atom = ENTER_ATOM;
if (atom->mode != M_SUBSTR) {
- message(L_FATAL, "inconsistent atom modifiers", 0);
+ message(L_FATAL, _("inconsistent atom modifiers"), 0);
fail();
}
atom->mode = M_REGEX;
@@ -485,7 +487,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state)
debug_message("parse_opt: )", 0);
while (args->state != STATE_PAREN) {
if (args->top == 0) {
- message(L_FATAL, "unexpected ')' in command line", 0);
+ message(L_FATAL, _("unexpected ')' in command line"), 0);
fail();
}
leave(args, 0);
@@ -496,7 +498,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state)
if (args->state == STATE_FINISHED) {
char const * s;
if (args->num_fnames >= MAX_FNAMES) {
- message(L_FATAL, "too many file names", 0);
+ message(L_FATAL, _("too many file names"), 0);
fail();
}
s = strdup(arg);
@@ -565,6 +567,11 @@ static struct argp argp = { options, parse_opt, 0, progdoc };
int main (int argc, char * argv[])
{
+ setlocale(LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+
static struct arguments args;
args.state = STATE_START;
args.show_field_name = true;
@@ -579,7 +586,7 @@ int main (int argc, char * argv[])
if (debug_optparse) { dump_args(&args); return 0; }
if (args.p.num_atoms == 0) {
- message(L_FATAL, "a predicate is required", 0);
+ message(L_FATAL, _("a predicate is required"), 0);
fail();
}
@@ -589,7 +596,7 @@ int main (int argc, char * argv[])
fail();
}
message(L_INFORMATIONAL,
- _("Adding Description to selected output fields because of -d"),
+ _("Adding \"Description\" to selected output fields because of -d"),
0);
args.show_fields[args.num_show_fields].name = description;
args.show_fields[args.num_show_fields].inx = description_inx;
@@ -638,20 +645,20 @@ int main (int argc, char * argv[])
int r = fstat(fd, &stat);
mode_t m = stat.st_mode;
if (r == -1) {
- fprintf(stderr, "%s: %s: cannot stat: %s\n",
+ fprintf(stderr, _("%s: %s: cannot stat: %s\n"),
argv[0], fname, strerror(errno));
record_error();
close(fd);
break;
}
if (!(S_ISREG(m) || S_ISCHR(m) || S_ISFIFO(m))) {
- fprintf(stderr, "%s: %s: %s, skipping\n",
+ fprintf(stderr, "%s: %s: %s\n",
argv[0], fname,
- S_ISDIR(m) ? "is a directory" :
- S_ISBLK(m) ? "is a block device" :
- S_ISLNK(m) ? "internal error" :
- S_ISSOCK(m) ? "is a socket" :
- "unknown file type");
+ S_ISDIR(m) ? _("is a directory, skipping") :
+ S_ISBLK(m) ? _("is a block device, skipping") :
+ S_ISLNK(m) ? _("internal error") :
+ S_ISSOCK(m) ? _("is a socket, skipping") :
+ _("unknown file type, skipping"));
record_error();
close(fd);
break;
diff --git a/i18n.h b/i18n.h
index 6942c51..67a3b5f 100644
--- a/i18n.h
+++ b/i18n.h
@@ -28,5 +28,6 @@
#define textdomain(Domain)
#define bindtextdomain(Package, Directory)
#endif
+#define N_(String) (String)
#endif /* I18N_H__ */
diff --git a/langs.mk b/langs.mk
new file mode 100644
index 0000000..86072b1
--- /dev/null
+++ b/langs.mk
@@ -0,0 +1 @@
+langs = ca fi
diff --git a/msg.h b/msg.h
index 16558dc..c33d5d6 100644
--- a/msg.h
+++ b/msg.h
@@ -54,14 +54,10 @@ do_msg(int severity)
#endif
#if defined(TEST_NODEBUG)
- if (severity == L_DEBUG)
- {
- line_message (L_INFORMATIONAL, _("Got a L_DEBUG while TEST_NODEBUG "
- "is defined"), 0, 0);
- message (L_FATAL, _("I'm broken - please report this "
- "to <gaia@iki.fi>"), 0, 0);
- abort ();
- }
+ if (severity == L_DEBUG) {
+ message (L_FATAL, _("I'm broken - please report this bug."), 0, 0);
+ abort ();
+ }
#endif
return severity >= loglevel;
diff --git a/paragraph.c b/paragraph.c
index 5e17746..4a60d72 100644
--- a/paragraph.c
+++ b/paragraph.c
@@ -38,7 +38,7 @@ void para_parse_next(para_t * para)
para->fields[i].end = 0;
}
fsaf_invalidate(para->fp, para->start);
- register enum { START, FIELD_NAME, BODY, BODY_NEWLINE,
+ register enum { START, FIELD_NAME, BODY, BODY_NEWLINE,
BODY_SKIPBLANKS, END } state = START;
register size_t pos = para->start;
register FSAF * fp = para->fp;
@@ -70,7 +70,7 @@ void para_parse_next(para_t * para)
case FIELD_NAME:
switch (c) {
case -1:
- message(L_FATAL, "unexpected end of file", 0);
+ message(L_FATAL, _("unexpected end of file"), 0);
fail();
case ':': {
size_t len = (pos-1) - field_start;
@@ -88,14 +88,14 @@ void para_parse_next(para_t * para)
}
break;
case '\n':
- message(L_FATAL, "unexpected end of line", 0);
+ message(L_FATAL, _("unexpected end of line"), 0);
fail();
}
break;
case BODY:
switch (c) {
case -1:
- message(L_FATAL, "unexpected end of file", 0);
+ message(L_FATAL, _("unexpected end of file"), 0);
fail();
case '\n':
if (field_data != 0) {
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 0000000..f64e679
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,230 @@
+# Catalan translation of dctrl-tools.
+# Copyright © 2004 Antti-Juhani Kaijanaho.
+# This file is distributed under the same license as the dctrl-tools package.
+# Jordi Mallach <jordi@debian.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: dctrl-tools\n"
+"Report-Msgid-Bugs-To: ajk@debian.org\n"
+"POT-Creation-Date: 2004-01-06 20:55+0200\n"
+"PO-Revision-Date: 2004-01-06 16:37+0100\n"
+"Last-Translator: Jordi Mallach <jordi@debian.org>\n"
+"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: grep-dctrl.c:43
+msgid "grep-dctrl -- grep Debian control files"
+msgstr "grep-dctrl -- cerca patrons en fitxers de control de Debian"
+
+#: grep-dctrl.c:122
+msgid "Show the testing banner."
+msgstr "Mostra l'avís de prova."
+
+#: grep-dctrl.c:124
+msgid "LEVEL"
+msgstr "NIVELL"
+
+#: grep-dctrl.c:124
+msgid "Set debugging level to LEVEL."
+msgstr "Estableix el nivell de depuració a NIVELL."
+
+#: grep-dctrl.c:125 grep-dctrl.c:127
+msgid "FIELD,FIELD,..."
+msgstr "CAMP,CAMP,..."
+
+#: grep-dctrl.c:125
+msgid "Restrict pattern matching to the FIELDs given."
+msgstr "Restringeix la coincidència de patrons als CAMPs donats."
+
+#: grep-dctrl.c:126
+msgid "Shorthand for -FPackage"
+msgstr "Forma curta per a -FPackage"
+
+#: grep-dctrl.c:127
+msgid "Show only the body of these fields from the matching paragraphs."
+msgstr "Mostra només el cos d'aquests camps dels paràgrafs coincidents."
+
+#: grep-dctrl.c:128
+msgid ""
+"Show only the first line of the \"Description\" field from the matching "
+"paragraphs."
+msgstr ""
+"Mostra només la primera línia del camp «Description» dels paràgrafs "
+"coincidents."
+
+#: grep-dctrl.c:129
+msgid "Suppress field names when showing specified fields."
+msgstr "Suprimeix els noms dels camps quan mostra els camps especificats."
+
+#: grep-dctrl.c:130
+msgid "Regard the pattern as an extended POSIX regular expression."
+msgstr "Considera el patró com una expressió regular estesa POSIX."
+
+#: grep-dctrl.c:131
+msgid "The pattern is a standard POSIX regular expression."
+msgstr "El patró és una expressió regular estàndard POSIX."
+
+#: grep-dctrl.c:132
+msgid "Ignore case when looking for a match."
+msgstr ""
+"No distigueixes entre majúscules i minúscules quan cerca una coincidència."
+
+#: grep-dctrl.c:133
+msgid "Show only paragraphs that do not match."
+msgstr "Mostra només els paràgrafs que no coincideixen."
+
+#: grep-dctrl.c:134
+msgid "Show only the count of matching paragraphs."
+msgstr "Mostra només el compte de paràgrafs coincidents."
+
+#: grep-dctrl.c:135
+msgid "FNAME"
+msgstr "NOMFITXER"
+
+#: grep-dctrl.c:135
+msgid "Use FNAME as the config file."
+msgstr "Utilitza NOMFITXER com el fitxer de configuració."
+
+#: grep-dctrl.c:136
+msgid "Do an exact match."
+msgstr "Fes una coincidència exacta."
+
+#: grep-dctrl.c:137
+msgid "Print out the copyright license."
+msgstr "Mostra la llicència del copyright."
+
+#: grep-dctrl.c:138
+msgid "Conjunct predicates."
+msgstr "Predicats conjunts."
+
+#: grep-dctrl.c:139
+msgid "Disjunct predicates."
+msgstr "Predicats disjunts."
+
+#: grep-dctrl.c:140
+msgid "Negate the following predicate."
+msgstr "Nega el següent predicat."
+
+#: grep-dctrl.c:141
+msgid "Debug option parsing."
+msgstr "Depura l'anàlisi d'opcions."
+
+#: grep-dctrl.c:142 grep-dctrl.c:143
+msgid "No output to stdout"
+msgstr "No mostra res a l'eixida estàndard"
+
+#: grep-dctrl.c:205 grep-dctrl.c:275 grep-dctrl.c:336 predicate.c:39
+msgid "predicate is too complex"
+msgstr "el predicat és massa complex"
+
+#: grep-dctrl.c:237
+msgid "A pattern is mandatory."
+msgstr "Es necessita un patró."
+
+#: grep-dctrl.c:296
+msgid "syntax error in command line"
+msgstr "hi ha un error de sintaxi a la línia d'ordres"
+
+#: grep-dctrl.c:313
+msgid "missing ')' in command line"
+msgstr "manca un «)» en la línia d'ordres"
+
+#: grep-dctrl.c:401
+msgid "no such log level"
+msgstr "aquest nivell de registre no existeix"
+
+#: grep-dctrl.c:440 grep-dctrl.c:449
+msgid "inconsistent atom modifiers"
+msgstr "els modificadors d'àtom no són consistents"
+
+#: grep-dctrl.c:490
+msgid "unexpected ')' in command line"
+msgstr "s'ha trobat un «)» inesperat a la línia d'ordres"
+
+#: grep-dctrl.c:501
+msgid "too many file names"
+msgstr "hi ha massa noms de fitxers"
+
+#: grep-dctrl.c:589
+msgid "a predicate is required"
+msgstr "es requereix un predicat"
+
+#: grep-dctrl.c:595
+msgid "too many output fields"
+msgstr "hi ha massa camps d'eixida"
+
+#: grep-dctrl.c:599
+msgid "Adding \"Description\" to selected output fields because of -d"
+msgstr ""
+"S'està afegint «Description» als camps d'eixida seleccionats a causa de -d"
+
+#: grep-dctrl.c:608
+msgid "cannot suppress field names when showing whole paragraphs"
+msgstr "no es pot suprimir els noms de camp quan es mostren paràgrafs sencers"
+
+#: grep-dctrl.c:648
+#, c-format
+msgid "%s: %s: cannot stat: %s\n"
+msgstr "%s: %s: no es pot fer stat(): %s\n"
+
+#: grep-dctrl.c:657
+msgid "is a directory, skipping"
+msgstr "és un directori, s'està ometent"
+
+#: grep-dctrl.c:658
+msgid "is a block device, skipping"
+msgstr "és un dispositiu de bloc, s'està ometent"
+
+#: grep-dctrl.c:659
+msgid "internal error"
+msgstr "s'ha produït un error intern"
+
+#: grep-dctrl.c:660
+msgid "is a socket, skipping"
+msgstr "és un sòcol, s'està ometent"
+
+#: grep-dctrl.c:661
+msgid "unknown file type, skipping"
+msgstr "el tipus de fitxer és desconegut, s'està ometent"
+
+#: paragraph.c:73 paragraph.c:98
+msgid "unexpected end of file"
+msgstr "s'ha trobat un final de fitxer inesperat"
+
+#: paragraph.c:91
+msgid "unexpected end of line"
+msgstr "s'ha trobat un final de línia inesperat"
+
+#: rc.c:75
+msgid "reading config file"
+msgstr "s'està llegint el fitxer de configuració"
+
+#: rc.c:96
+msgid "read failure or out of memory"
+msgstr "ha fallat la lectura o la memòria s'ha exhaurit"
+
+#: rc.c:116
+msgid "syntax error: need a executable name"
+msgstr "error de sintaxi: es necessita un nom d'executable"
+
+#: rc.c:124
+msgid "syntax error: need an input file name"
+msgstr "error de sintaxi: es necessita un nom de fitxer d'entrada"
+
+#: rc.c:129
+msgid "considering executable name"
+msgstr "s'està considerant el nom de l'executable"
+
+#: rc.c:131
+msgid "yes, will use executable name"
+msgstr "sí, s'utilitzarà el nom d'executable"
+
+#: rc.c:133
+msgid "default input file"
+msgstr "fitxer d'entrada per defecte"
+
+#~ msgid "%s: %s: %s\n"
+#~ msgstr "%s: %s: %s\n"
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..489d263
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,226 @@
+# Finnish translation of dctrl-tools
+# Copyright (C) 2004 Antti-Juhani Kaijanaho
+# This file is distributed under the same license as the dctrl-tools package.
+# Antti-Juhani Kaijanaho <ajk@debian.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: dctrl-tools\n"
+"Report-Msgid-Bugs-To: ajk@debian.org\n"
+"POT-Creation-Date: 2004-01-06 20:55+0200\n"
+"PO-Revision-Date: 2004-01-06 19:45+0200\n"
+"Last-Translator: Antti-Juhani Kaijanaho <ajk@debian.org>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: grep-dctrl.c:43
+msgid "grep-dctrl -- grep Debian control files"
+msgstr "grep-dctrl -- hae Debianin kontrollitiedostoista"
+
+#: grep-dctrl.c:122
+msgid "Show the testing banner."
+msgstr "Näytä testausviesti."
+
+#: grep-dctrl.c:124
+msgid "LEVEL"
+msgstr "TASO"
+
+#: grep-dctrl.c:124
+msgid "Set debugging level to LEVEL."
+msgstr "Aseta vianetsintätasoksi TASO."
+
+#: grep-dctrl.c:125 grep-dctrl.c:127
+msgid "FIELD,FIELD,..."
+msgstr "KENTTÄ,KENTT�,..."
+
+#: grep-dctrl.c:125
+msgid "Restrict pattern matching to the FIELDs given."
+msgstr "Rajoita haku annettuihin KENTTIIN."
+
+#: grep-dctrl.c:126
+msgid "Shorthand for -FPackage"
+msgstr "Lyhyt muoto vivulle -FPackage"
+
+#: grep-dctrl.c:127
+msgid "Show only the body of these fields from the matching paragraphs."
+msgstr "Näytä vain näiden kenttien sisältö täsmäävissä tietueissa"
+
+#: grep-dctrl.c:128
+msgid ""
+"Show only the first line of the \"Description\" field from the matching "
+"paragraphs."
+msgstr ""
+"Näytä täsmäävien tietueiden \"Description\"-kentästä vain ensimmäinen rivi."
+
+#: grep-dctrl.c:129
+msgid "Suppress field names when showing specified fields."
+msgstr "Älä näytä kenttien nimiä silloin kun haetaan vain tietyistä kentistä."
+
+#: grep-dctrl.c:130
+msgid "Regard the pattern as an extended POSIX regular expression."
+msgstr "Käsittele hakuehtoa laajennettuna POSIXin siäännöllisenä lausekkeena."
+
+#: grep-dctrl.c:131
+msgid "The pattern is a standard POSIX regular expression."
+msgstr "Hakuehto on tavallinen POSIXin säännöllinen lauseke."
+
+#: grep-dctrl.c:132
+msgid "Ignore case when looking for a match."
+msgstr "Jätä kirjainkoko huomiotta haussa."
+
+#: grep-dctrl.c:133
+msgid "Show only paragraphs that do not match."
+msgstr "Näytä vain ne tietueet, jotka eivät täsmää."
+
+#: grep-dctrl.c:134
+msgid "Show only the count of matching paragraphs."
+msgstr "Näytä vain täsmäävien tietueiden lukumäärä."
+
+#: grep-dctrl.c:135
+msgid "FNAME"
+msgstr "TIEDNIMI"
+
+#: grep-dctrl.c:135
+msgid "Use FNAME as the config file."
+msgstr "Käytä TIEDNIMI-tiedostoa asetustiedostona."
+
+#: grep-dctrl.c:136
+msgid "Do an exact match."
+msgstr "Käytä täsmällistä hakua."
+
+#: grep-dctrl.c:137
+msgid "Print out the copyright license."
+msgstr "Tulosta tekijänoikeuslisenssi."
+
+#: grep-dctrl.c:138
+msgid "Conjunct predicates."
+msgstr "Yhdistä predikaatit JA-konnektiivilla"
+
+#: grep-dctrl.c:139
+msgid "Disjunct predicates."
+msgstr "Yhdistä predikaatit TAI-konnektiivilla"
+
+#: grep-dctrl.c:140
+msgid "Negate the following predicate."
+msgstr "Negatoi seuraava predikaatti."
+
+#: grep-dctrl.c:141
+msgid "Debug option parsing."
+msgstr "Testaa valitsimien jäsennyst�."
+
+#: grep-dctrl.c:142 grep-dctrl.c:143
+msgid "No output to stdout"
+msgstr "Älä tulosta mitään vakiotulostevirtaan"
+
+#: grep-dctrl.c:205 grep-dctrl.c:275 grep-dctrl.c:336 predicate.c:39
+msgid "predicate is too complex"
+msgstr "predikaatti on liian monimutkainen"
+
+#: grep-dctrl.c:237
+msgid "A pattern is mandatory."
+msgstr "Hakuehto on välttämätön."
+
+#: grep-dctrl.c:296
+msgid "syntax error in command line"
+msgstr "komentorivillä on syntaksivirhe"
+
+#: grep-dctrl.c:313
+msgid "missing ')' in command line"
+msgstr "komentoriviltä puuttuu ')'"
+
+#: grep-dctrl.c:401
+msgid "no such log level"
+msgstr "ei sellaista seurantatasoa ole"
+
+#: grep-dctrl.c:440 grep-dctrl.c:449
+msgid "inconsistent atom modifiers"
+msgstr "ristitiitaiset atomin määritteet"
+
+#: grep-dctrl.c:490
+msgid "unexpected ')' in command line"
+msgstr "odottamaton ')' komentorivill�"
+
+#: grep-dctrl.c:501
+msgid "too many file names"
+msgstr "liikaa tiedostonimiä"
+
+#: grep-dctrl.c:589
+msgid "a predicate is required"
+msgstr "predikaatti on välttämätön"
+
+#: grep-dctrl.c:595
+msgid "too many output fields"
+msgstr "liikaa tulostettavia kenttiä"
+
+#: grep-dctrl.c:599
+msgid "Adding \"Description\" to selected output fields because of -d"
+msgstr "Merkitsen \"Description\"-kentän tulostettavaksi -d-valitsimen takia"
+
+#: grep-dctrl.c:608
+msgid "cannot suppress field names when showing whole paragraphs"
+msgstr ""
+"en voi jättää näyttämättä kenttien nimiä, kun näytän kokonaisia tietueita"
+
+#: grep-dctrl.c:648
+#, c-format
+msgid "%s: %s: cannot stat: %s\n"
+msgstr "%s: %s: stat-kutsu epäonnistui: %s\n"
+
+#: grep-dctrl.c:657
+msgid "is a directory, skipping"
+msgstr "on hakemisto, jätän huomiotta"
+
+#: grep-dctrl.c:658
+msgid "is a block device, skipping"
+msgstr "on lohkolaite, jätän huomiotta"
+
+#: grep-dctrl.c:659
+msgid "internal error"
+msgstr "ohjelman oma virhe"
+
+#: grep-dctrl.c:660
+msgid "is a socket, skipping"
+msgstr "on pistoke, jätän huomiotta"
+
+#: grep-dctrl.c:661
+msgid "unknown file type, skipping"
+msgstr "tuntematon tiedostotyyppi, jätän huomiotta"
+
+#: paragraph.c:73 paragraph.c:98
+msgid "unexpected end of file"
+msgstr "odottamaton tiedoston loppu"
+
+#: paragraph.c:91
+msgid "unexpected end of line"
+msgstr "odottamaton rivin loppu"
+
+#: rc.c:75
+msgid "reading config file"
+msgstr "luen asetustiedostoa"
+
+#: rc.c:96
+msgid "read failure or out of memory"
+msgstr "lukeminen epäonnistui tai muisti loppui"
+
+#: rc.c:116
+msgid "syntax error: need a executable name"
+msgstr "syntaksivirhe: tarvitsen ohjelmannimen"
+
+#: rc.c:124
+msgid "syntax error: need an input file name"
+msgstr "syntaksivirhe: tarvitsen syötetiedoston nimen"
+
+#: rc.c:129
+msgid "considering executable name"
+msgstr "harkitsen ohjelmannimeä"
+
+#: rc.c:131
+msgid "yes, will use executable name"
+msgstr "kyllä, käytän ohjelmannimeä"
+
+#: rc.c:133
+msgid "default input file"
+msgstr "oletussyötetiedosto"
+
diff --git a/predicate.c b/predicate.c
index 3d7dbbd..006ac42 100644
--- a/predicate.c
+++ b/predicate.c
@@ -36,7 +36,7 @@ void addinsn(struct predicate * p, int insn)
{
if (insn == I_NOP) return;
if (p->proglen >= MAX_OPS) {
- message(L_FATAL, "predicate is too complex", 0);
+ message(L_FATAL, _("predicate is too complex"), 0);
fail();
}
p->program[p->proglen++] = insn;
diff --git a/rc.c b/rc.c
index 1efc13d..658f91b 100644
--- a/rc.c
+++ b/rc.c
@@ -93,7 +93,7 @@ const char * find_ifile_by_exename(const char * exename, const char * rcfname)
line = getaline (f);
if (line == 0) {
- message(L_FATAL, "read failure or out of memory",
+ message(L_FATAL, _("read failure or out of memory"),
fname);
fail();
}