diff options
author | Antti-Juhani Kaijanaho <ajk@debian.org> | 2006-01-28 21:48:13 +0100 |
---|---|---|
committer | Antti-Juhani Kaijanaho <ajk@debian.org> | 2006-01-28 21:48:13 +0100 |
commit | 16747fcf09555f47c9d6d49e3379f1bdc2e85e7c (patch) | |
tree | f84621f79e982219ba91f26da2ae7790a912cc37 | |
parent | 51f1cad5c1604a78d74a5da904329d1919997027 (diff) | |
download | dctrl-tools-16747fcf09555f47c9d6d49e3379f1bdc2e85e7c.tar.gz |
Import 2.1.5
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | debian/changelog | 20 | ||||
-rw-r--r-- | getaline.c | 2 | ||||
-rw-r--r-- | grep-dctrl.c | 303 | ||||
-rw-r--r-- | langs.mk | 2 | ||||
-rw-r--r-- | msg.c | 9 | ||||
-rw-r--r-- | msg.h | 39 | ||||
-rw-r--r-- | po/ca.po | 109 | ||||
-rw-r--r-- | po/de.po | 108 | ||||
-rw-r--r-- | po/fi.po | 102 | ||||
-rw-r--r-- | po/fr.po | 307 |
11 files changed, 773 insertions, 230 deletions
@@ -4,7 +4,7 @@ localedir = /usr/share/locale CC = gcc -std=gnu99 CFLAGS = -O2 -g -Wall -DENABLE_L_DEBUG -D_GNU_SOURCE -DSYSCONF=\"$(sysconfdir)\" \ - -DHAVE_GETTEXT -DPACKAGE=\"grep-dctrl\" -DLOCALEDIR=\"$(localedir)\" + -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-)"' diff --git a/debian/changelog b/debian/changelog index d11d786..a448205 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,23 @@ +grep-dctrl (2.1.5) unstable; urgency=low + + * msg.[ch]: Rearranging. + * msg.h (msg_get_progname): New function. + * grep-dctrl.c: Rewrite the parser so that argp only + produces a list of tokens for a new recursive-descent + predicate parser. + Closes: #227543 (Predicate parser is fragile) [Reported by AJK] + * French translation by Nicolas Bertolissio, proofread by + Michel Grentzinger, Claude Thomassin and Denis Barbier + * po/fi.po: Updated. + * getaline.c (getaline): Ensure that there is a null terminator in an + empty return value. + * grep-dctrl.c (main): Warn about the use of standard input when the + command name was not found. + Closes: #236196 (please tell the user when falling back to reading stdin) + [Reported by Danilo Piazzalunga] + + -- Antti-Juhani Kaijanaho <ajk@debian.org> Sun, 4 Jul 2004 15:12:04 +0300 + grep-dctrl (2.1.4) unstable; urgency=low * predicate.c (verify_atom): Check that the stack contains exactly @@ -66,6 +66,8 @@ char * getaline (FILE * f) buf = malloc (size); if (buf == NULL) return NULL; + buf[0] = '\0'; + while (fgets (buf + len, size - len, f) != NULL) { len += strlen(buf + len); if (len > 0 && buf[len - 1] == '\n') diff --git a/grep-dctrl.c b/grep-dctrl.c index b833f97..c324cc1 100644 --- a/grep-dctrl.c +++ b/grep-dctrl.c @@ -145,16 +145,22 @@ static struct argp_option options[] = { }; -enum state { STATE_ATOM, STATE_NEG, STATE_CONJ, STATE_DISJ, - STATE_PAREN, STATE_START, STATE_FINISHED }; +// Tokens +#define TOK_EOD 0 +#define TOK_NOT 1 +#define TOK_AND 2 +#define TOK_OR 3 +#define TOK_LP 4 /* left paren */ +#define TOK_RP 5 /* right paren */ +#define TOK_ATOM_BASE 6 /* All tokens >= TOK_ATOM_BASE are atoms; the + difference is the atom index. */ #define MAX_FNAMES 4096 +#define MAX_TOKS 16384 static int debug_optparse = 0; struct arguments { - /* Parser state, used when parsing the predicate. */ - enum state state; /* Parser state flag: last token seen was ')' */ bool just_seen_cparen; /* Top of the parser stack. */ @@ -181,15 +187,23 @@ struct arguments { bool count; /* Invert match? */ bool invert_match; - /* Parser stack. */ - struct stack_elem { - enum state state; - /* A linked list of instructions. */ - struct insn_node { - int insn; - struct insn_node * next; - } * insns_first, * insns_last; - } stack[MAX_OPS]; + /* Token stream for the predicate parser. */ + int toks[MAX_TOKS]; + /* First unused position in toks. */ + size_t toks_np; + /* Token read position. */ + size_t toks_pos; + /* Finished with the predicate scanning? */ + bool finished; + /* Are we inside an atom? */ + bool in_atom; + /* Pattern error? */ + bool pattern_error; + /* For each atom, give code with which it can be accessed. */ + struct atom_code { + size_t n; + int * routine; + } atom_code[MAX_ATOMS]; /* File names seen on the command line. */ char const * fname[MAX_FNAMES]; /**/ @@ -207,8 +221,9 @@ struct atom * clone_atom(struct arguments * args) message(L_FATAL, _("predicate is too complex"), 0); fail(); } + int oa = args->p.num_atoms-1; struct atom * atom = get_current_atom(&args->p); - int push_insn = I_PUSH(args->p.num_atoms); + int na = args->p.num_atoms; struct atom * rv = &args->p.atoms[args->p.num_atoms++]; rv->field_name = atom->field_name; rv->field_inx = atom->field_inx; @@ -216,28 +231,29 @@ struct atom * clone_atom(struct arguments * args) rv->ignore_case = atom->ignore_case; rv->pat = atom->pat; rv->patlen = atom->patlen; - assert(args->top > 0); - struct stack_elem * selem = &args->stack[args->top-1]; - assert(selem->insns_first != 0); - assert(selem->insns_last != 0); - struct insn_node * node1 = malloc(sizeof *node1); - struct insn_node * node2 = malloc(sizeof *node2); - if (node1 == 0 || node2 == 0) fatal_enomem(0); - node1->insn = push_insn; - node2->insn = I_OR; - node1->next = node2; - node2->next = 0; - selem->insns_last->next = node1; - selem->insns_last = node2; + struct atom_code * oac = &args->atom_code[oa]; + struct atom_code * nac = &args->atom_code[na]; + assert(nac->n == 0); + assert(oac->n > 0); + nac->n = oac->n+2; + nac->routine = malloc(nac->n); + if (nac->routine == 0) fatal_enomem(0); + for (size_t i = 0; i < oac->n; i++) { + nac->routine[i] = oac->routine[i]; + } + nac->routine[oac->n+0] = I_PUSH(na); + nac->routine[oac->n+1] = I_OR; return rv; } static void finish_atom(struct arguments * args) { + assert(args->in_atom); + args->in_atom = false; struct atom * atom = get_current_atom(&args->p); if (atom->pat == 0) { - message(L_FATAL, _("A pattern is mandatory"), 0); - fail(); + args->pattern_error = true; + return; } for (size_t i = 0; i < args->num_search_fields; i++) { if (i > 0) atom = clone_atom(args); @@ -250,6 +266,7 @@ static void finish_atom(struct arguments * args) args->num_search_fields = 0; } +#if 0 /* Pop off one stack state, inserting the associated instructions to * the predicate program. If paren is true, current state must be * STATE_PAREN, and if paren is false, it must not be STATE_PAREN. */ @@ -271,41 +288,21 @@ static void leave(struct arguments * args, int paren) args->stack[args->top].insns_last = 0; args->state = args->stack[args->top].state; } +#endif -#define ENTER(state,insn) do { enter(args, (state), (insn)); } while (0) +#define APPTOK(tok) do { apptok(args, (tok)); } while (0) -static void prim_enter(struct arguments * args, const enum state state, const int insn) +static void apptok(struct arguments * args, const int tok) { - if (args->top >= MAX_OPS) { - message(L_FATAL, _("predicate is too complex"), 0); - fail(); + debug_message("apptok", 0); + if (args->in_atom && tok < TOK_ATOM_BASE) { + finish_atom(args); } -// args->stack[args->top].insn = insn; - struct insn_node * node = malloc(sizeof *node); - if (node == 0) fatal_enomem(0); - node->insn = insn; - node->next = 0; - args->stack[args->top].insns_first = node; - args->stack[args->top].insns_last = node; - args->stack[args->top].state = args->state; - ++args->top; - args->state = state; -} - -/* Push current state along with the given instruction to stack and - * enter the given state. - */ -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); + if (args->toks_np >= MAX_TOKS) { + message(L_FATAL, _("predicate is too long"), 0); fail(); } - while (args->state < state || (state != STATE_NEG && args->state == state)) { - leave(args, 0); - } - prim_enter(args, state, insn); - debug_message("entering...", 0); + args->toks[args->toks_np++] = tok; } #define FINISH do { finish(args); } while (0) @@ -313,40 +310,39 @@ static void enter(struct arguments * args, const enum state state, const int ins /* Flush the state stack. */ static void finish(struct arguments * args) { - while (args->top > 0) { - if (args->state == STATE_PAREN) { - message(L_FATAL, _("missing ')' in command line"), 0); - fail(); - } - leave(args, 0); - } - assert(args->state == STATE_START); - args->state = STATE_FINISHED; + assert(!args->finished); + if (args->in_atom) finish_atom(args); + args->finished = true; } -#define ENTER_ATOM (enter_atom((args),(just_seen_cparen))) +#define ENTER_ATOM (enter_atom((args))) -/* If necessary, enter STATE_ATOM and allocate a new atom, pushing +/* FIXME: UPDATE COMMENT +If necessary, enter STATE_ATOM and allocate a new atom, pushing * along with the old state a PUSH instruction for the new atom to the * parser stack. If we are already in STATE_ATOM, reuse the current * atom. */ -static struct atom * enter_atom(struct arguments * args, bool just_seen_cparen) +static struct atom * enter_atom(struct arguments * args) { - if (just_seen_cparen) { - message(L_FATAL, _("Unexpected atom in command line. " - "Did you forget to use a connective?"), 0); - fail(); - } struct atom * rv; - if (args->state == STATE_ATOM || args->state == STATE_FINISHED) { + if (args->in_atom) { assert(args->p.num_atoms > 0); return &args->p.atoms[args->p.num_atoms-1]; } + args->in_atom = true; if (args->p.num_atoms >= MAX_ATOMS) { message(L_FATAL, _("predicate is too complex"), 0); fail(); } - ENTER(STATE_ATOM, I_PUSH(args->p.num_atoms)); + APPTOK(args->p.num_atoms + TOK_ATOM_BASE); + assert(args->atom_code[args->p.num_atoms].n == 0); + args->atom_code[args->p.num_atoms].n = 1; + args->atom_code[args->p.num_atoms].routine = malloc(1); + if (args->atom_code[args->p.num_atoms].routine == 0) { + fatal_enomem(0); + } + args->atom_code[args->p.num_atoms].routine[0] + = I_PUSH(args->p.num_atoms); rv = &args->p.atoms[args->p.num_atoms++]; rv->field_name = 0; rv->field_inx = -1; @@ -364,6 +360,13 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) args->just_seen_cparen = false; struct atom * atom; debug_message("parse_opt", 0); +#ifdef INCLUDE_DEBUG_MSGS + if (do_msg(L_DEBUG)) { + fprintf(stderr, "%s: in_atom = %s\n", + msg_get_progname(), + args->in_atom ? "true" : "false"); + } +#endif switch (key) { case 'C': if (!to_stdout (COPYING)) fail(); @@ -419,21 +422,22 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) break; case '!': debug_message("parse_opt: !", 0); - ENTER(STATE_NEG, I_NEG); + APPTOK(TOK_NOT); break; case 'a': debug_message("parse_opt: a", 0); - ENTER(STATE_CONJ, I_AND); + APPTOK(TOK_AND); break; case 'o': debug_message("parse_opt: o", 0); - ENTER(STATE_DISJ, I_OR); + APPTOK(I_OR); break; case 'P': debug_message("parse_opt: P", 0); arg = "Package"; /* pass through */ case 'F': { + debug_message("parse_opt: Fv", 0); atom = ENTER_ATOM; char * carg = strdup(arg); if (carg == 0) fatal_enomem(0); @@ -487,28 +491,21 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) debug_message("!!!", 0); if (strcmp(arg, "!") == 0) { debug_message("parse_opt: !", 0); - ENTER(STATE_NEG, I_NEG); + APPTOK(TOK_NOT); break; } if (strcmp(arg, "(") == 0) { debug_message("parse_opt: (", 0); - prim_enter(args, STATE_PAREN, I_NOP); + APPTOK(TOK_LP); break; } if (strcmp(arg, ")") == 0) { debug_message("parse_opt: )", 0); - while (args->state != STATE_PAREN) { - if (args->top == 0) { - message(L_FATAL, _("unexpected ')' in command line"), 0); - fail(); - } - leave(args, 0); - } - leave(args, 1); args->just_seen_cparen = true; + APPTOK(TOK_RP); break; } - if (args->state == STATE_FINISHED) { + if (args->finished) { char const * s; if (args->num_fnames >= MAX_FNAMES) { message(L_FATAL, _("too many file names"), 0); @@ -519,7 +516,8 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) args->fname[args->num_fnames++] = s; break; } - if (just_seen_cparen || strcmp(arg, "--") == 0) { FINISH; break; } + if (just_seen_cparen) { FINISH; goto redo; } + if (strcmp(arg, "--") == 0) { FINISH; break; } atom = ENTER_ATOM; if (atom->pat != 0) { FINISH; goto redo; } atom->patlen = strlen(arg); @@ -529,7 +527,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) break; case ARGP_KEY_END: debug_message("parse_opt: end", 0); - if (args->state != STATE_FINISHED) FINISH; + if (!args->finished) FINISH; break; case ARGP_KEY_ARGS: case ARGP_KEY_INIT: case ARGP_KEY_SUCCESS: case ARGP_KEY_ERROR: case ARGP_KEY_FINI: case ARGP_KEY_NO_ARGS: @@ -548,7 +546,7 @@ static error_t parse_opt (int key, char * arg, struct argp_state * state) static void dump_args(struct arguments * args) { size_t i; - assert(args->state == STATE_FINISHED); + assert(args->finished); assert(args->top == 0); printf("num_atoms = %zi\n", args->p.num_atoms); for (i = 0; i < args->p.num_atoms; i++) { @@ -576,6 +574,109 @@ static void dump_args(struct arguments * args) } } +static +int peek_token(struct arguments const * args) +{ + assert(args->toks_pos <= args->toks_np); + if (args->toks_pos == args->toks_np) return TOK_EOD; + return args->toks[args->toks_pos]; +} + +static +int get_token(struct arguments * args) +{ + assert(args->toks_pos <= args->toks_np); + if (args->toks_pos == args->toks_np) return TOK_EOD; + return args->toks[args->toks_pos++]; +} + +static void unexpected(int tok) +{ + switch (tok) { + case TOK_EOD: + message(L_FATAL, _("unexpected end of predicate"), 0); + fail(); + case TOK_NOT: + message(L_FATAL, _("unexpected '!' in command line"), 0); + fail(); + case TOK_AND: + message(L_FATAL, _("unexpected '-a' in command line"), 0); + fail(); + case TOK_OR : + message(L_FATAL, _("unexpected '-o' in command line"), 0); + fail(); + case TOK_LP : + message(L_FATAL, _("unexpected '(' in command line"), 0); + fail(); + case TOK_RP : + message(L_FATAL, _("unexpected ')' in command line"), 0); + fail(); + default: + assert(tok >=TOK_ATOM_BASE); + message(L_FATAL, _("unexpected atom in command line"), 0); + fail(); + } +} + +static void parse_conj(struct arguments * args); + +static void parse_prim(struct arguments * args) +{ + if (peek_token(args) == TOK_LP) { + get_token(args); + parse_conj(args); + if (get_token(args) != TOK_RP) { + message(L_FATAL, _("missing ')' in command line"), 0); + fail(); + } + return; + } + if (peek_token(args) < TOK_ATOM_BASE) unexpected(peek_token(args)); + int atom = get_token(args) - TOK_ATOM_BASE; + assert(atom >= 0); + assert(atom < MAX_ATOMS); + addinsn(&args->p, I_PUSH(atom)); +} + +static void parse_neg(struct arguments * args) +{ + bool neg = false; + if (peek_token(args) == TOK_NOT) { + neg = true; + get_token(args); + } + parse_prim(args); + if (neg) addinsn(&args->p, I_NEG); +} + +static void parse_disj(struct arguments * args) +{ + parse_neg(args); + while (peek_token(args) == TOK_OR) { + get_token(args); + parse_neg(args); + addinsn(&args->p, I_OR); + } +} + +static void parse_conj(struct arguments * args) +{ + parse_disj(args); + while (peek_token(args) == TOK_AND) { + get_token(args); + parse_disj(args); + addinsn(&args->p, I_AND); + } +} + +static void parse_predicate(struct arguments * args) +{ + args->toks_pos = 0; + parse_conj(args); + int tok = peek_token(args); + if (tok != TOK_EOD) unexpected(tok); +} + static struct argp argp = { options, parse_opt, 0, progdoc }; int main (int argc, char * argv[]) @@ -586,7 +687,6 @@ int main (int argc, char * argv[]) static struct arguments args; - args.state = STATE_START; args.show_field_name = true; msg_set_progname(argv[0]); init_predicate(&args.p); @@ -595,6 +695,11 @@ int main (int argc, char * argv[]) #ifdef BANNER banner(true); #endif + parse_predicate(&args); + if (args.pattern_error) { + message(L_FATAL, _("A pattern is mandatory"), 0); + fail(); + } if (debug_optparse) { dump_args(&args); return 0; } @@ -641,7 +746,13 @@ int main (int argc, char * argv[]) fname = "-"; } else { fname = find_ifile_by_exename(argv0, args.rcname); - if (fname == 0) fname = "-"; + if (fname == 0) { + message(L_IMPORTANT, + _("warning: this command name " + "is not configured; using " + "standard input"), 0); + fname = "-"; + } } } else { fname = args.fname[i]; @@ -1 +1 @@ -langs = ca fi de +langs = ca fi fr de @@ -34,12 +34,17 @@ #include <stdbool.h> -bool errors = false; - #include <assert.h> #include <string.h> #include "msg.h" +#define PROGNAME_MAXLEN 64 + +bool errors = false; + +int loglevel = L_IMPORTANT; +char progname [PROGNAME_MAXLEN]; + struct str2int_avec_t { const char * str; int integer; @@ -35,23 +35,29 @@ void fail(void) { exit(2); } #define L_INFORMATIONAL 1 #define L_DEBUG 0 -#define PROGNAME_MAXLEN 64 - #if !defined(NDEBUG) && !defined(TEST_NODEBUG) && defined(ENABLE_L_DEBUG) # define INCLUDE_DEBUG_MSGS #endif -#ifdef MSG_C__ -int loglevel = L_IMPORTANT; -char progname [PROGNAME_MAXLEN]; -#endif +/* Get program name. */ +static inline +char const * msg_get_progname (void) +{ + extern const char progname[]; + return progname; +} + +static inline +void record_error(void) +{ + extern bool errors; + errors = 1; +} inline static int do_msg(int severity) { -#ifndef MSG_C__ extern int loglevel; -#endif #if defined(TEST_NODEBUG) if (severity == L_DEBUG) { @@ -66,10 +72,7 @@ do_msg(int severity) inline static void line_message (int severity, const char * s, const char * fname, int line) { -#ifndef MSG_C__ - extern const char progname [PROGNAME_MAXLEN]; - extern bool errors; -#endif + char const * progname = msg_get_progname(); if (do_msg(severity)) { if (fname == 0) { @@ -81,7 +84,7 @@ line_message (int severity, const char * s, const char * fname, int line) fprintf (stderr, "%s: %s: %s.\n", progname, fname, s); } } - if (severity >= L_IMPORTANT) errors = true; + if (severity >= L_IMPORTANT) record_error(); } } @@ -144,20 +147,10 @@ msg_set_progname (const char * pn); static inline bool errors_reported(void) { -#ifndef MSG_C__ extern bool errors; -#endif return errors; } -static inline -void record_error(void) -{ -#ifndef MSG_C__ - extern bool errors; -#endif - errors = 1; -} #endif /* MSG_H__ */ @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: dctrl-tools\n" "Report-Msgid-Bugs-To: ajk@debian.org\n" -"POT-Creation-Date: 2004-03-03 21:11+0200\n" +"POT-Creation-Date: 2004-07-04 15:07+0300\n" "PO-Revision-Date: 2004-02-09 10:20+0100\n" "Last-Translator: Jordi Mallach <jordi@debian.org>\n" "Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n" @@ -116,87 +116,116 @@ msgstr "Depura l'anà lisi d'opcions." msgid "Do no output to stdout." msgstr "No mostra res a l'eixida està ndard." -#: grep-dctrl.c:207 grep-dctrl.c:280 grep-dctrl.c:346 predicate.c:39 +#: grep-dctrl.c:221 grep-dctrl.c:334 predicate.c:39 msgid "predicate is too complex" msgstr "el predicat és massa complex" -#: grep-dctrl.c:239 -msgid "A pattern is mandatory" -msgstr "Es necessita un patró" - -#: grep-dctrl.c:301 -msgid "syntax error in command line" -msgstr "hi ha un error de sintaxi a la lÃnia d'ordres" - -#: grep-dctrl.c:318 -msgid "missing ')' in command line" -msgstr "manca un «)» en la lÃnia d'ordres" - -#: grep-dctrl.c:336 -msgid "Unexpected atom in command line. Did you forget to use a connective?" -msgstr "" -"S'ha trobat un à tom inesperat en la lÃnia d'ordres. Heu oblidat utilitzar un " -"connector?" +#: grep-dctrl.c:302 +#, fuzzy +msgid "predicate is too long" +msgstr "el predicat és massa complex" -#: grep-dctrl.c:413 +#: grep-dctrl.c:416 msgid "no such log level" msgstr "aquest nivell de registre no existeix" -#: grep-dctrl.c:452 grep-dctrl.c:461 +#: grep-dctrl.c:456 grep-dctrl.c:465 msgid "inconsistent atom modifiers" msgstr "els modificadors d'à tom no són consistents" -#: grep-dctrl.c:502 +#: grep-dctrl.c:511 +msgid "too many file names" +msgstr "hi ha massa noms de fitxers" + +#: grep-dctrl.c:597 +#, fuzzy +msgid "unexpected end of predicate" +msgstr "s'ha trobat un final de fitxer inesperat" + +#: grep-dctrl.c:600 +#, fuzzy +msgid "unexpected '!' in command line" +msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" + +#: grep-dctrl.c:603 +#, fuzzy +msgid "unexpected '-a' in command line" +msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" + +#: grep-dctrl.c:606 +#, fuzzy +msgid "unexpected '-o' in command line" +msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" + +#: grep-dctrl.c:609 +#, fuzzy +msgid "unexpected '(' in command line" +msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" + +#: grep-dctrl.c:612 msgid "unexpected ')' in command line" msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" -#: grep-dctrl.c:514 -msgid "too many file names" -msgstr "hi ha massa noms de fitxers" +#: grep-dctrl.c:616 +#, fuzzy +msgid "unexpected atom in command line" +msgstr "s'ha trobat un «)» inesperat a la lÃnia d'ordres" -#: grep-dctrl.c:602 +#: grep-dctrl.c:629 +msgid "missing ')' in command line" +msgstr "manca un «)» en la lÃnia d'ordres" + +#: grep-dctrl.c:700 +msgid "A pattern is mandatory" +msgstr "Es necessita un patró" + +#: grep-dctrl.c:707 msgid "a predicate is required" msgstr "es requereix un predicat" -#: grep-dctrl.c:607 +#: grep-dctrl.c:712 msgid "malformed predicate" msgstr "el predicat és malformat" -#: grep-dctrl.c:613 +#: grep-dctrl.c:718 msgid "too many output fields" msgstr "hi ha massa camps d'eixida" -#: grep-dctrl.c:617 +#: grep-dctrl.c:722 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:626 +#: grep-dctrl.c:731 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:667 +#: grep-dctrl.c:751 +msgid "warning: this command name is not configured; using standard input" +msgstr "" + +#: grep-dctrl.c:778 #, c-format msgid "%s: %s: cannot stat: %s\n" msgstr "%s: %s: no es pot fer stat(): %s\n" -#: grep-dctrl.c:676 +#: grep-dctrl.c:787 msgid "is a directory, skipping" msgstr "és un directori, s'està ometent" -#: grep-dctrl.c:677 +#: grep-dctrl.c:788 msgid "is a block device, skipping" msgstr "és un dispositiu de bloc, s'està ometent" -#: grep-dctrl.c:678 +#: grep-dctrl.c:789 msgid "internal error" msgstr "s'ha produït un error intern" -#: grep-dctrl.c:679 +#: grep-dctrl.c:790 msgid "is a socket, skipping" msgstr "és un sòcol, s'està ometent" -#: grep-dctrl.c:680 +#: grep-dctrl.c:791 msgid "unknown file type, skipping" msgstr "el tipus de fitxer és desconegut, s'està ometent" @@ -236,6 +265,14 @@ msgstr "sÃ, s'utilitzarà el nom d'executable" msgid "default input file" msgstr "fitxer d'entrada per defecte" +#~ msgid "syntax error in command line" +#~ msgstr "hi ha un error de sintaxi a la lÃnia d'ordres" + +#~ msgid "Unexpected atom in command line. Did you forget to use a connective?" +#~ msgstr "" +#~ "S'ha trobat un à tom inesperat en la lÃnia d'ordres. Heu oblidat utilitzar " +#~ "un connector?" + #~ msgid "Test for numerical equality." #~ msgstr "Comprova l'igualtat numèrica." @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: dctrl-tools\n" "Report-Msgid-Bugs-To: ajk@debian.org\n" -"POT-Creation-Date: 2004-03-03 21:11+0200\n" +"POT-Creation-Date: 2004-07-04 15:07+0300\n" "PO-Revision-Date: 2004-02-09 09:58+0100\n" "Last-Translator: Gerfried Fuchs <alfie@debian.org>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" @@ -114,86 +114,116 @@ msgstr "Optionenverarbeitung debuggen." msgid "Do no output to stdout." msgstr "Keine Ausgabe auf die Standardausgabe." -#: grep-dctrl.c:207 grep-dctrl.c:280 grep-dctrl.c:346 predicate.c:39 +#: grep-dctrl.c:221 grep-dctrl.c:334 predicate.c:39 msgid "predicate is too complex" msgstr "Eigenschaft ist zu komplex" -#: grep-dctrl.c:239 -msgid "A pattern is mandatory" -msgstr "Ein Muster wird benötigt" - -#: grep-dctrl.c:301 -msgid "syntax error in command line" -msgstr "Syntax-Fehler in der Befehlszeile" - -#: grep-dctrl.c:318 -msgid "missing ')' in command line" -msgstr "Fehlende »)« in der Befehlszeile" - -#: grep-dctrl.c:336 -msgid "Unexpected atom in command line. Did you forget to use a connective?" -msgstr "" -"Unerwartetes Atom in der Befehlszeile. Haben Sie einen Verbinder vergessen?" +#: grep-dctrl.c:302 +#, fuzzy +msgid "predicate is too long" +msgstr "Eigenschaft ist zu komplex" -#: grep-dctrl.c:413 +#: grep-dctrl.c:416 msgid "no such log level" msgstr "Keine solche Log-Ebene" -#: grep-dctrl.c:452 grep-dctrl.c:461 +#: grep-dctrl.c:456 grep-dctrl.c:465 msgid "inconsistent atom modifiers" msgstr "Inkonsistener Atom-Modifikator" -#: grep-dctrl.c:502 +#: grep-dctrl.c:511 +msgid "too many file names" +msgstr "Zu viele Dateinamen" + +#: grep-dctrl.c:597 +#, fuzzy +msgid "unexpected end of predicate" +msgstr "unerwartetes Dateiende" + +#: grep-dctrl.c:600 +#, fuzzy +msgid "unexpected '!' in command line" +msgstr "Unerwartete »)« in der Befehlszeile" + +#: grep-dctrl.c:603 +#, fuzzy +msgid "unexpected '-a' in command line" +msgstr "Unerwartete »)« in der Befehlszeile" + +#: grep-dctrl.c:606 +#, fuzzy +msgid "unexpected '-o' in command line" +msgstr "Unerwartete »)« in der Befehlszeile" + +#: grep-dctrl.c:609 +#, fuzzy +msgid "unexpected '(' in command line" +msgstr "Unerwartete »)« in der Befehlszeile" + +#: grep-dctrl.c:612 msgid "unexpected ')' in command line" msgstr "Unerwartete »)« in der Befehlszeile" -#: grep-dctrl.c:514 -msgid "too many file names" -msgstr "Zu viele Dateinamen" +#: grep-dctrl.c:616 +#, fuzzy +msgid "unexpected atom in command line" +msgstr "Unerwartete »)« in der Befehlszeile" -#: grep-dctrl.c:602 +#: grep-dctrl.c:629 +msgid "missing ')' in command line" +msgstr "Fehlende »)« in der Befehlszeile" + +#: grep-dctrl.c:700 +msgid "A pattern is mandatory" +msgstr "Ein Muster wird benötigt" + +#: grep-dctrl.c:707 msgid "a predicate is required" msgstr "Eine Eigenschaft wird benötigt" -#: grep-dctrl.c:607 +#: grep-dctrl.c:712 msgid "malformed predicate" msgstr "Missgebildete Eigenschaft" -#: grep-dctrl.c:613 +#: grep-dctrl.c:718 msgid "too many output fields" msgstr "Zu viele Ausgabefelder" -#: grep-dctrl.c:617 +#: grep-dctrl.c:722 msgid "Adding \"Description\" to selected output fields because of -d" msgstr "Füge »Description« wegen -d zu den gewählten Ausgabefeldern hinzu" -#: grep-dctrl.c:626 +#: grep-dctrl.c:731 msgid "cannot suppress field names when showing whole paragraphs" msgstr "" "Kann keine Feldnamen unterdrücken, wenn komplette Abschnitte angezeigt werden" -#: grep-dctrl.c:667 +#: grep-dctrl.c:751 +msgid "warning: this command name is not configured; using standard input" +msgstr "" + +#: grep-dctrl.c:778 #, c-format msgid "%s: %s: cannot stat: %s\n" msgstr "%s: %s: stat kann nicht durchgeführt werden: %s\n" -#: grep-dctrl.c:676 +#: grep-dctrl.c:787 msgid "is a directory, skipping" msgstr "ist ein Verzeichnis, wird übersprungen" -#: grep-dctrl.c:677 +#: grep-dctrl.c:788 msgid "is a block device, skipping" msgstr "ist ein Block-Gerät, wird übersprungen" -#: grep-dctrl.c:678 +#: grep-dctrl.c:789 msgid "internal error" msgstr "interner Fehler" -#: grep-dctrl.c:679 +#: grep-dctrl.c:790 msgid "is a socket, skipping" msgstr "ist ein Socket, wird übersprungen" -#: grep-dctrl.c:680 +#: grep-dctrl.c:791 msgid "unknown file type, skipping" msgstr "unbekannter Dateityp, wird übersprungen" @@ -233,6 +263,14 @@ msgstr "Ja, Programmname wird verwendet" msgid "default input file" msgstr "Default-Eingabedatei" +#~ msgid "syntax error in command line" +#~ msgstr "Syntax-Fehler in der Befehlszeile" + +#~ msgid "Unexpected atom in command line. Did you forget to use a connective?" +#~ msgstr "" +#~ "Unerwartetes Atom in der Befehlszeile. Haben Sie einen Verbinder " +#~ "vergessen?" + #~ msgid "Test for numerical equality." #~ msgstr "Test auf numerische Ãœbereinstimmung." @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: dctrl-tools\n" "Report-Msgid-Bugs-To: ajk@debian.org\n" -"POT-Creation-Date: 2004-03-03 21:11+0200\n" -"PO-Revision-Date: 2004-02-11 17:40+0200\n" +"POT-Creation-Date: 2004-07-04 15:07+0300\n" +"PO-Revision-Date: 2004-07-04 15:06+0300\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" @@ -114,85 +114,109 @@ msgstr "Testaa valitsimien jäsennyst�." msgid "Do no output to stdout." msgstr "Älä tulosta mitään vakiotulostevirtaan." -#: grep-dctrl.c:207 grep-dctrl.c:280 grep-dctrl.c:346 predicate.c:39 +#: grep-dctrl.c:221 grep-dctrl.c:334 predicate.c:39 msgid "predicate is too complex" msgstr "predikaatti on liian monimutkainen" -#: grep-dctrl.c:239 -msgid "A pattern is mandatory" -msgstr "Hakuehto on välttämätön" - -#: grep-dctrl.c:301 -msgid "syntax error in command line" -msgstr "komentorivillä on syntaksivirhe" - -#: grep-dctrl.c:318 -msgid "missing ')' in command line" -msgstr "komentoriviltä puuttuu ')'" - -#: grep-dctrl.c:336 -msgid "Unexpected atom in command line. Did you forget to use a connective?" -msgstr "Odottamaton atomi komentorivillä. Unohditko konnektiivin jostain?" +#: grep-dctrl.c:302 +msgid "predicate is too long" +msgstr "predikaatti on liian pitkä" -#: grep-dctrl.c:413 +#: grep-dctrl.c:416 msgid "no such log level" msgstr "ei sellaista seurantatasoa ole" -#: grep-dctrl.c:452 grep-dctrl.c:461 +#: grep-dctrl.c:456 grep-dctrl.c:465 msgid "inconsistent atom modifiers" msgstr "ristitiitaiset atomin määritteet" -#: grep-dctrl.c:502 -msgid "unexpected ')' in command line" -msgstr "odottamaton ')' komentorivill�" - -#: grep-dctrl.c:514 +#: grep-dctrl.c:511 msgid "too many file names" msgstr "liikaa tiedostonimiä" -#: grep-dctrl.c:602 +#: grep-dctrl.c:597 +msgid "unexpected end of predicate" +msgstr "odottamaton predikaatin loppu" + +#: grep-dctrl.c:600 +msgid "unexpected '!' in command line" +msgstr "odottamaton '!' komentorivillä" + +#: grep-dctrl.c:603 +msgid "unexpected '-a' in command line" +msgstr "odottamaton '-a' komentorivillä" + +#: grep-dctrl.c:606 +msgid "unexpected '-o' in command line" +msgstr "odottamaton '-o' komentorivillä" + +#: grep-dctrl.c:609 +msgid "unexpected '(' in command line" +msgstr "odottamaton '(' komentorivillä" + +#: grep-dctrl.c:612 +msgid "unexpected ')' in command line" +msgstr "odottamaton ')' komentorivillä" + +#: grep-dctrl.c:616 +msgid "unexpected atom in command line" +msgstr "odottamaton atomi komentorivillä" + +#: grep-dctrl.c:629 +msgid "missing ')' in command line" +msgstr "komentoriviltä puuttuu ')'" + +#: grep-dctrl.c:700 +msgid "A pattern is mandatory" +msgstr "Hakuehto on välttämätön" + +#: grep-dctrl.c:707 msgid "a predicate is required" msgstr "predikaatti on välttämätön" -#: grep-dctrl.c:607 +#: grep-dctrl.c:712 msgid "malformed predicate" msgstr "rikkinäinen predikaatti" -#: grep-dctrl.c:613 +#: grep-dctrl.c:718 msgid "too many output fields" msgstr "liikaa tulostettavia kenttiä" -#: grep-dctrl.c:617 +#: grep-dctrl.c:722 msgid "Adding \"Description\" to selected output fields because of -d" msgstr "Merkitsen \"Description\"-kentän tulostettavaksi -d-valitsimen takia" -#: grep-dctrl.c:626 +#: grep-dctrl.c:731 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:667 +#: grep-dctrl.c:751 +msgid "warning: this command name is not configured; using standard input" +msgstr "" + +#: grep-dctrl.c:778 #, c-format msgid "%s: %s: cannot stat: %s\n" msgstr "%s: %s: stat-kutsu epäonnistui: %s\n" -#: grep-dctrl.c:676 +#: grep-dctrl.c:787 msgid "is a directory, skipping" msgstr "on hakemisto, jätän huomiotta" -#: grep-dctrl.c:677 +#: grep-dctrl.c:788 msgid "is a block device, skipping" msgstr "on lohkolaite, jätän huomiotta" -#: grep-dctrl.c:678 +#: grep-dctrl.c:789 msgid "internal error" msgstr "ohjelman oma virhe" -#: grep-dctrl.c:679 +#: grep-dctrl.c:790 msgid "is a socket, skipping" msgstr "on pistoke, jätän huomiotta" -#: grep-dctrl.c:680 +#: grep-dctrl.c:791 msgid "unknown file type, skipping" msgstr "tuntematon tiedostotyyppi, jätän huomiotta" @@ -231,3 +255,9 @@ msgstr "kyllä, käytän ohjelmannimeä" #: rc.c:134 msgid "default input file" msgstr "oletussyötetiedosto" + +#~ msgid "syntax error in command line" +#~ msgstr "komentorivillä on syntaksivirhe" + +#~ msgid "Unexpected atom in command line. Did you forget to use a connective?" +#~ msgstr "Odottamaton atomi komentorivillä. Unohditko konnektiivin jostain?" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..68c29c5 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,307 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Antti-Juhani Kaijanaho +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: dctrl-tools 2.0\n" +"Report-Msgid-Bugs-To: ajk@debian.org\n" +"POT-Creation-Date: 2004-07-04 15:07+0300\n" +"PO-Revision-Date: 2004-07-04 10:41+0200\n" +"Last-Translator: Nicolas Bertolissio <nico.bertol@free.fr>\n" +"Language-Team: French <debian-l10n-french@lists.debian.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: grep-dctrl.c:43 +msgid "grep-dctrl -- grep Debian control files" +msgstr "grep-dctrl -- sélection dans des fichiers de contrôle Debian" + +#: grep-dctrl.c:122 +msgid "Show the testing banner." +msgstr "Afficher la bannière de test" + +#: grep-dctrl.c:124 +msgid "LEVEL" +msgstr "NIVEAU" + +#: grep-dctrl.c:124 +msgid "Set debugging level to LEVEL." +msgstr "Sélectionner le niveau de débogage NIVEAU" + +#: grep-dctrl.c:125 grep-dctrl.c:127 +msgid "FIELD,FIELD,..." +msgstr "CHAMP,CHAMP,..." + +#: grep-dctrl.c:125 +msgid "Restrict pattern matching to the FIELDs given." +msgstr "Restreindre le motif de correspondance aux CHAMPS fournis" + +#: grep-dctrl.c:126 +msgid "This is a shorthand for -FPackage." +msgstr "Il s'agit d'un raccourci pour -FPackage." + +#: grep-dctrl.c:127 +msgid "Show only the body of these fields from the matching paragraphs." +msgstr "N'afficher que le corps des champs des paragraphes qui correspondent" + +#: grep-dctrl.c:128 +msgid "" +"Show only the first line of the \"Description\" field from the matching " +"paragraphs." +msgstr "" +"N'afficher que la première ligne du champ « Description » des paragraphes " +"qui correspondent" + +#: grep-dctrl.c:129 +msgid "Suppress field names when showing specified fields." +msgstr "Supprimer les noms de champs lors de l'affichage des champs spécifiés" + +#: grep-dctrl.c:130 +msgid "Regard the pattern as an extended POSIX regular expression." +msgstr "Considérer le motif comme une expression rationnelle POSIX étendue" + +#: grep-dctrl.c:131 +msgid "The pattern is a standard POSIX regular expression." +msgstr "Le motif est une expression rationnelle POSIX standard." + +#: grep-dctrl.c:132 +msgid "Ignore case when looking for a match." +msgstr "Ignorer la casse lors de la recherche d'un motif" + +#: grep-dctrl.c:133 +msgid "Show only paragraphs that do not match." +msgstr "N'afficher que les paragraphes qui ne correspondent pas" + +#: grep-dctrl.c:134 +msgid "Show only the count of matching paragraphs." +msgstr "N'afficher que le nombre de paragraphes qui correspondent" + +#: grep-dctrl.c:135 +msgid "FNAME" +msgstr "FICHIER" + +#: grep-dctrl.c:135 +msgid "Use FNAME as the config file." +msgstr "Utiliser FICHIER comme fichier de configuration" + +#: grep-dctrl.c:136 +msgid "Do an exact match." +msgstr "Rechercher une correspondance exacte" + +#: grep-dctrl.c:137 +msgid "Print out the copyright license." +msgstr "Afficher la licence" + +#: grep-dctrl.c:138 +msgid "Conjunct predicates." +msgstr "Associer les prédicats" + +#: grep-dctrl.c:139 +msgid "Disjunct predicates." +msgstr "Dissocier les prédicats" + +#: grep-dctrl.c:140 +msgid "Negate the following predicate." +msgstr "Inverser le prédicat suivant" + +#: grep-dctrl.c:141 +msgid "Debug option parsing." +msgstr "Déboguer l'analyse des options" + +#: grep-dctrl.c:142 grep-dctrl.c:143 +msgid "Do no output to stdout." +msgstr "Pas de sortie sur la sortie standard." + +#: grep-dctrl.c:221 grep-dctrl.c:334 predicate.c:39 +msgid "predicate is too complex" +msgstr "le prédicat est trop complexe" + +#: grep-dctrl.c:302 +msgid "predicate is too long" +msgstr "le prédicat est trop long" + +#: grep-dctrl.c:416 +msgid "no such log level" +msgstr "niveau de journalisation inexistant" + +#: grep-dctrl.c:456 grep-dctrl.c:465 +msgid "inconsistent atom modifiers" +msgstr "modificateurs d'atome incohérents" + +#: grep-dctrl.c:511 +msgid "too many file names" +msgstr "trop de noms de fichiers" + +#: grep-dctrl.c:597 +msgid "unexpected end of predicate" +msgstr "fin de prédicat inattendue" + +#: grep-dctrl.c:600 +msgid "unexpected '!' in command line" +msgstr "« ! » inattendu sur la ligne de commande" + +#: grep-dctrl.c:603 +msgid "unexpected '-a' in command line" +msgstr "« -a » inattendu sur la ligne de commande" + +#: grep-dctrl.c:606 +msgid "unexpected '-o' in command line" +msgstr "« -o » inattendu sur la ligne de commande" + +#: grep-dctrl.c:609 +msgid "unexpected '(' in command line" +msgstr "« ( » inattendue sur la ligne de commande" + +#: grep-dctrl.c:612 +msgid "unexpected ')' in command line" +msgstr "« ) » inattendue sur la ligne de commande" + +#: grep-dctrl.c:616 +msgid "unexpected atom in command line" +msgstr "atome inattendu sur la ligne de commande" + +#: grep-dctrl.c:629 +msgid "missing ')' in command line" +msgstr "« ) » manquante sur la ligne de commande" + +#: grep-dctrl.c:700 +msgid "A pattern is mandatory" +msgstr "Un motif est nécessaire" + +#: grep-dctrl.c:707 +msgid "a predicate is required" +msgstr "un prédicat est nécessaire" + +#: grep-dctrl.c:712 +msgid "malformed predicate" +msgstr "prédicat mal formé" + +#: grep-dctrl.c:718 +msgid "too many output fields" +msgstr "trop de champs de sortie" + +#: grep-dctrl.c:722 +msgid "Adding \"Description\" to selected output fields because of -d" +msgstr "" +"Ajout de « Description » aux champs de sortie sélectionnés à cause de -d" + +#: grep-dctrl.c:731 +msgid "cannot suppress field names when showing whole paragraphs" +msgstr "" +"impossible de supprimer les noms de champs lors de l'affichage des " +"paragraphes complets" + +#: grep-dctrl.c:751 +msgid "warning: this command name is not configured; using standard input" +msgstr "" + +#: grep-dctrl.c:778 +#, c-format +msgid "%s: %s: cannot stat: %s\n" +msgstr "%s : impossible d'analyser « %s » : %s\n" + +#: grep-dctrl.c:787 +msgid "is a directory, skipping" +msgstr "est un répertoire, ignoré" + +#: grep-dctrl.c:788 +msgid "is a block device, skipping" +msgstr "est un périphérique bloc, ignoré" + +#: grep-dctrl.c:789 +msgid "internal error" +msgstr "erreur interne" + +#: grep-dctrl.c:790 +msgid "is a socket, skipping" +msgstr "est une socket, ignorée" + +#: grep-dctrl.c:791 +msgid "unknown file type, skipping" +msgstr "type de fichier inconnu, ignoré" + +#: paragraph.c:73 paragraph.c:98 +msgid "unexpected end of file" +msgstr "fin de fichier inattendue" + +#: paragraph.c:91 +msgid "unexpected end of line" +msgstr "fin de ligne inattendue" + +#: rc.c:75 +msgid "reading config file" +msgstr "lecture du fichier de configuration" + +#: rc.c:96 +msgid "read failure or out of memory" +msgstr "erreur de lecture ou manque de mémoire" + +#: rc.c:117 +msgid "syntax error: need a executable name" +msgstr "erreur de syntaxe : nécessite un nom d'exécutable" + +#: rc.c:125 +msgid "syntax error: need an input file name" +msgstr "erreur de syntaxe : nécessite un nom de fichier d'entrée" + +#: rc.c:130 +msgid "considering executable name" +msgstr "étude de l'exécutable nommé" + +#: rc.c:132 +msgid "yes, will use executable name" +msgstr "utilise l'exécutable nommé" + +#: rc.c:134 +msgid "default input file" +msgstr "fichier d'entrée par défaut" + +#~ msgid "Test for numerical equality." +#~ msgstr "Test d'égalité numérique" + +#~ msgid "Numerical test: <." +#~ msgstr "Test numérique : <" + +#~ msgid "Numerical test: <=." +#~ msgstr "Test numérique : <=" + +#~ msgid "Numerical test: >." +#~ msgstr "Test numérique : >" + +#~ msgid "Numerical test: >=." +#~ msgstr "Test numérique : >=" + +#~ msgid "syntax error in command line" +#~ msgstr "erreur de syntaxe sur la ligne de commande" + +#~ msgid "Unexpected atom in command line. Did you forget to use a connective?" +#~ msgstr "" +#~ "Atome inattendu sur la ligne de commande. Auriez-vous oublié d'utiliser " +#~ "un connecteur ?" + +#~ msgid "%s: command (%s) failed (exit status %d)\n" +#~ msgstr "%s : la commande (%s) a échoué (état de sortie %d)\n" + +#~ msgid "%s: command (%s) was killed by signal %d\n" +#~ msgstr "%s : la commande (%s) a été tuée par le signal %d\n" + +#~ msgid "%s (child): failed to exec /bin/sh: %s\n" +#~ msgstr "%s (enfant) : échec d'exécution de /bin/sh : %s\n" + +#~ msgid "invalid numeric pattern" +#~ msgstr "motif numérique invalide" + +#~ msgid "parse of a numeric field failed" +#~ msgstr "l'analyse d'un champ numérique a échoué" + +#~ msgid "Malformed default input file name" +#~ msgstr "nom de fichier d'entrée par défaut mal formé" + +#~ msgid "not owned by you or root, ignoring" +#~ msgstr "détenu ni par vous ni par le super-utilisateur, ignoré" + +#~ msgid "write permissions for group or others, ignoring" +#~ msgstr "droits d'écriture pour le groupe ou le reste du monde, ignoré" |