gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, gawk-4.0-stable, updated. ac3a3b5a09051f


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.0-stable, updated. ac3a3b5a09051f68ec1d521cfe1e39f44cb0a07a
Date: Fri, 10 Feb 2012 11:23:07 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, gawk-4.0-stable has been updated
       via  ac3a3b5a09051f68ec1d521cfe1e39f44cb0a07a (commit)
       via  bd7e60f71231f3f74c6f6efdaf856c71eeaa61ef (commit)
      from  4321116ab54f5177ae4a4d1dcd2a7dd7e1bd6419 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=ac3a3b5a09051f68ec1d521cfe1e39f44cb0a07a

commit ac3a3b5a09051f68ec1d521cfe1e39f44cb0a07a
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 10 13:22:45 2012 +0200

    Sync dfa.c with GNU grep.

diff --git a/ChangeLog b/ChangeLog
index 166ebc7..463d924 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2012-02-10         Arnold D. Robbins     <address@hidden>
+
+       * dfa.c: Sync with GNU grep.
+
 2012-02-07         Arnold D. Robbins     <address@hidden>
 
        * main.c (main): Move init of `output_fp' to before parsing of
diff --git a/dfa.c b/dfa.c
index 012251a..64ce8f7 100644
--- a/dfa.c
+++ b/dfa.c
@@ -114,6 +114,19 @@ typedef int charclass[CHARCLASS_INTS];
    errors that the cast doesn't.  */
 static inline unsigned char to_uchar (char ch) { return ch; }
 
+/* Contexts tell us whether a character is a newline or a word constituent.
+   Word-constituent characters are those that satisfy iswalnum(), plus '_'.
+
+   A state also stores a context value, which is nonzero if its
+   predecessors always matches a newline or a word constituent.
+   The definition of a state's context is a bit unclear, but will be
+   modified soon anyway.  */
+
+#define CTX_NONE       1
+#define CTX_LETTER     2
+#define CTX_NEWLINE    4
+#define CTX_ANY                7
+
 /* Sometimes characters can only be matched depending on the surrounding
    context.  Such context decisions depend on what the previous character
    was, and the value of the current (lookahead) character.  Context
@@ -130,20 +143,19 @@ static inline unsigned char to_uchar (char ch) { return 
ch; }
    bit 1 - previous wasn't word-constituent, current is
    bit 0 - neither previous nor current is word-constituent
 
-   Word-constituent characters are those that satisfy isalnum().
-
    The macro SUCCEEDS_IN_CONTEXT determines whether a given constraint
-   succeeds in a particular context.  Prevn is true if the previous character
-   was a newline, currn is true if the lookahead character is a newline.
-   Prevl and currl similarly depend upon whether the previous and current
-   characters are word-constituent letters. */
-#define MATCHES_NEWLINE_CONTEXT(constraint, prevn, currn) \
-  ((constraint) & 1 << (((prevn) ? 2 : 0) + ((currn) ? 1 : 0) + 4))
-#define MATCHES_LETTER_CONTEXT(constraint, prevl, currl) \
-  ((constraint) & 1 << (((prevl) ? 2 : 0) + ((currl) ? 1 : 0)))
-#define SUCCEEDS_IN_CONTEXT(constraint, prevn, currn, prevl, currl) \
-  (MATCHES_NEWLINE_CONTEXT(constraint, prevn, currn)                \
-   && MATCHES_LETTER_CONTEXT(constraint, prevl, currl))
+   succeeds in a particular context.  Prev is the context value for
+   the previous character, curr is the context value for the lookahead
+   character. */
+#define MATCHES_NEWLINE_CONTEXT(constraint, prev, curr) \
+  ((constraint) & \
+   1 << (((prev & CTX_NEWLINE) ? 2 : 0) + ((curr & CTX_NEWLINE) ? 1 : 0) + 4))
+#define MATCHES_LETTER_CONTEXT(constraint, prev, curr) \
+  ((constraint) & \
+   1 << (((prev & CTX_LETTER) ? 2 : 0) + ((curr & CTX_LETTER) ? 1 : 0)))
+#define SUCCEEDS_IN_CONTEXT(constraint, prev, curr) \
+  (MATCHES_NEWLINE_CONTEXT(constraint, prev, curr)                  \
+   && MATCHES_LETTER_CONTEXT(constraint, prev, curr))
 
 /* The following macros give information about what a constraint depends on. */
 #define PREV_NEWLINE_DEPENDENT(constraint) \
@@ -287,9 +299,8 @@ typedef struct
 {
   int hash;                    /* Hash of the positions of this state. */
   position_set elems;          /* Positions this state could match. */
-  char newline;                        /* True if previous state matched 
newline. */
-  char letter;                 /* True if previous state matched a letter. */
-  char backref;                        /* True if this state matches a 
\<digit>. */
+  unsigned char context;       /* Context from previous state. */
+  char backref;                        /* True if this state matches a 
\<digit>.  */
   unsigned char constraint;    /* Constraint for this state to accept. */
   int first_end;               /* Token value of the first END in elems. */
   position_set mbps;           /* Positions which can match multibyte
@@ -421,9 +432,8 @@ struct dfa
 
 /* ACCEPTS_IN_CONTEXT returns true if the given state accepts in the
    specified context. */
-#define ACCEPTS_IN_CONTEXT(prevn, currn, prevl, currl, state, dfa) \
-  SUCCEEDS_IN_CONTEXT((dfa).states[state].constraint,             \
-                       prevn, currn, prevl, currl)
+#define ACCEPTS_IN_CONTEXT(prev, curr, state, dfa) \
+  SUCCEEDS_IN_CONTEXT((dfa).states[state].constraint, prev, curr)
 
 static void dfamust (struct dfa *dfa);
 static void regexp (void);
@@ -576,14 +586,72 @@ static int case_fold;
 /* End-of-line byte in data.  */
 static unsigned char eolbyte;
 
+/* Cache of char-context values.  */
+static int sbit[NOTCHAR];
+
+/* Set of characters considered letters. */
+static charclass letters;
+
+/* Set of characters that are newline. */
+static charclass newline;
+
+/* Add this to the test for whether a byte is word-constituent, since on
+   BSD-based systems, many values in the 128..255 range are classified as
+   alphabetic, while on glibc-based systems, they are not.  */
+#ifdef __GLIBC__
+# define is_valid_unibyte_character(c) 1
+#else
+# define is_valid_unibyte_character(c) (! (MBS_SUPPORT && btowc (c) == WEOF))
+#endif
+
+/* Return non-zero if C is a 'word-constituent' byte; zero otherwise.  */
+#define IS_WORD_CONSTITUENT(C) \
+  (is_valid_unibyte_character (C) && (isalnum (C) || (C) == '_'))
+
+static int
+char_context (unsigned char c)
+{
+  if (c == eolbyte || c == 0)
+    return CTX_NEWLINE;
+  if (IS_WORD_CONSTITUENT (c))
+    return CTX_LETTER;
+  return CTX_NONE;
+}
+
+static int
+wchar_context(wint_t wc)
+{
+  if (wc == (wchar_t)eolbyte || wc == 0)
+    return CTX_NEWLINE;
+  if (wc == L'_' || iswalnum (wc))
+    return CTX_LETTER;
+  return CTX_NONE;
+}
+
 /* Entry point to set syntax options. */
 void
 dfasyntax (reg_syntax_t bits, int fold, unsigned char eol)
 {
+  unsigned int i;
+
   syntax_bits_set = 1;
   syntax_bits = bits;
   case_fold = fold;
   eolbyte = eol;
+
+  for (i = 0; i < NOTCHAR; ++i)
+    {
+      sbit[i] = char_context (i);
+      switch (sbit[i])
+        {
+        case CTX_LETTER:
+          setbit (i, letters);
+          break;
+        case CTX_NEWLINE:
+          setbit (i, newline);
+          break;
+        }
+    }
 }
 
 /* Set a bit in the charclass for the given wchar_t.  Do nothing if WC
@@ -1077,19 +1145,6 @@ parse_bracket_exp (void)
   return CSET + charclass_index(ccl);
 }
 
-/* Add this to the test for whether a byte is word-constituent, since on
-   BSD-based systems, many values in the 128..255 range are classified as
-   alphabetic, while on glibc-based systems, they are not.  */
-#ifdef __GLIBC__
-# define is_valid_unibyte_character(c) 1
-#else
-# define is_valid_unibyte_character(c) (! (MBS_SUPPORT && btowc (c) == WEOF))
-#endif
-
-/* Return non-zero if C is a `word-constituent' byte; zero otherwise.  */
-#define IS_WORD_CONSTITUENT(C) \
-  (is_valid_unibyte_character(C) && (isalnum(C) || (C) == '_'))
-
 static token
 lex (void)
 {
@@ -1914,18 +1969,15 @@ delete (position p, position_set *s)
 
 /* Find the index of the state corresponding to the given position set with
    the given preceding context, or create a new state if there is no such
-   state.  Newline and letter tell whether we got here on a newline or
-   letter, respectively. */
+   state.  Context tells whether we got here on a newline or letter. */
 static int
-state_index (struct dfa *d, position_set const *s, int newline, int letter)
+state_index (struct dfa *d, position_set const *s, int context)
 {
   int hash = 0;
   int constraint;
   int i, j;
 
-  newline = newline ? 1 : 0;
-  letter = letter ? 1 : 0;
-
+  context &= ~CTX_NONE;
   for (i = 0; i < s->nelem; ++i)
     hash ^= s->elems[i].index + s->elems[i].constraint;
 
@@ -1933,7 +1985,7 @@ state_index (struct dfa *d, position_set const *s, int 
newline, int letter)
   for (i = 0; i < d->sindex; ++i)
     {
       if (hash != d->states[i].hash || s->nelem != d->states[i].elems.nelem
-          || newline != d->states[i].newline || letter != d->states[i].letter)
+          || context != d->states[i].context)
         continue;
       for (j = 0; j < s->nelem; ++j)
         if (s->elems[j].constraint
@@ -1949,8 +2001,7 @@ state_index (struct dfa *d, position_set const *s, int 
newline, int letter)
   d->states[i].hash = hash;
   alloc_position_set(&d->states[i].elems, s->nelem);
   copy(s, &d->states[i].elems);
-  d->states[i].newline = newline;
-  d->states[i].letter = letter;
+  d->states[i].context = context;
   d->states[i].backref = 0;
   d->states[i].constraint = 0;
   d->states[i].first_end = 0;
@@ -1963,10 +2014,9 @@ state_index (struct dfa *d, position_set const *s, int 
newline, int letter)
     if (d->tokens[s->elems[j].index] < 0)
       {
         constraint = s->elems[j].constraint;
-        if (SUCCEEDS_IN_CONTEXT(constraint, newline, 0, letter, 0)
-            || SUCCEEDS_IN_CONTEXT(constraint, newline, 0, letter, 1)
-            || SUCCEEDS_IN_CONTEXT(constraint, newline, 1, letter, 0)
-            || SUCCEEDS_IN_CONTEXT(constraint, newline, 1, letter, 1))
+        if (SUCCEEDS_IN_CONTEXT(constraint, context, CTX_NONE)
+            || SUCCEEDS_IN_CONTEXT(constraint, context, CTX_NEWLINE)
+            || SUCCEEDS_IN_CONTEXT(constraint, context, CTX_LETTER))
           d->states[i].constraint |= constraint;
         if (! d->states[i].first_end)
           d->states[i].first_end = d->tokens[s->elems[j].index];
@@ -2049,6 +2099,55 @@ epsclosure (position_set *s, struct dfa const *d)
   free(visited);
 }
 
+/* Returns the set of contexts for which there is at least one
+   character included in C.  */
+
+static int
+charclass_context(charclass c)
+{
+  int context = 0;
+  unsigned int j;
+
+  if (tstbit(eolbyte, c))
+    context |= CTX_NEWLINE;
+
+  for (j = 0; j < CHARCLASS_INTS; ++j)
+    {
+      if (c[j] & letters[j])
+        context |= CTX_LETTER;
+      if (c[j] & ~(letters[j] | newline[j]))
+        context |= CTX_NONE;
+    }
+
+  return context;
+}
+
+/* Returns the subset of POSSIBLE_CONTEXTS on which the position set S
+   depends.  Each context in the set of returned contexts (let's call it
+   SC) may have a different follow set than other contexts in SC, and
+   also different from the follow set of the complement set.  However,
+   all contexts in the complement set will have the same follow set.  */
+
+static int _GL_ATTRIBUTE_PURE
+state_separate_contexts (position_set *s, int possible_contexts)
+{
+  int separate_context = 0;
+  unsigned int j;
+
+  for (j = 0; j < s->nelem; ++j)
+    {
+      if ((possible_contexts & CTX_NEWLINE)
+          && PREV_NEWLINE_DEPENDENT(s->elems[j].constraint))
+        separate_context |= CTX_NEWLINE;
+      if ((possible_contexts & CTX_LETTER)
+          && PREV_LETTER_DEPENDENT(s->elems[j].constraint))
+        separate_context |= CTX_LETTER;
+    }
+
+  return separate_context;
+}
+
+
 /* Perform bottom-up analysis on the parse tree, computing various functions.
    Note that at this point, we're pretending constructs like \< are real
    characters rather than constraints on what can follow them.
@@ -2111,7 +2210,7 @@ dfaanalyze (struct dfa *d, int searchflag)
   position *lastpos;           /* Array where lastpos elements are stored. */
   position_set tmp;            /* Temporary set for merging sets. */
   position_set merged;         /* Result of merging sets. */
-  int wants_newline;           /* True if some position wants newline info. */
+  int separate_contexts;       /* Context wanted by some position. */
   int *o_nullable;
   int *o_nfirst, *o_nlast;
   position *o_firstpos, *o_lastpos;
@@ -2301,17 +2400,13 @@ dfaanalyze (struct dfa *d, int searchflag)
     insert(firstpos[i], &merged);
   epsclosure(&merged, d);
 
-  /* Check if any of the positions of state 0 will want newline context. */
-  wants_newline = 0;
-  for (i = 0; i < merged.nelem; ++i)
-    if (PREV_NEWLINE_DEPENDENT(merged.elems[i].constraint))
-      wants_newline = 1;
-
   /* Build the initial state. */
   d->salloc = 1;
   d->sindex = 0;
   MALLOC(d->states, d->salloc);
-  state_index(d, &merged, wants_newline, 0);
+
+  separate_contexts = state_separate_contexts(&merged, CTX_NEWLINE);
+  state_index(d, &merged, separate_contexts);
 
   free(o_nullable);
   free(o_nfirst);
@@ -2321,6 +2416,7 @@ dfaanalyze (struct dfa *d, int searchflag)
   free(merged.elems);
 }
 
+
 /* Find, for each character, the transition out of state s of d, and store
    it in the appropriate slot of trans.
 
@@ -2364,32 +2460,19 @@ dfastate (int s, struct dfa *d, int trans[])
   int intersectf;              /* True if intersect is nonempty. */
   charclass leftovers;         /* Stuff in the label that didn't match. */
   int leftoversf;              /* True if leftovers is nonempty. */
-  static charclass letters;    /* Set of characters considered letters. */
-  static charclass newline;    /* Set of characters that are newline. */
   position_set follows;                /* Union of the follows of some group. 
*/
   position_set tmp;            /* Temporary space for merging sets. */
+  int possible_contexts;       /* Contexts that this group can match. */
+  int separate_contexts;       /* Context that new state wants to know. */
   int state;                   /* New state. */
-  int wants_newline;           /* New state wants to know newline context. */
   int state_newline;           /* New state on a newline transition. */
-  int wants_letter;            /* New state wants to know letter context. */
   int state_letter;            /* New state on a letter transition. */
-  static int initialized;      /* Flag for static initialization. */
   int next_isnt_1st_byte = 0;  /* Flag if we can't add state0.  */
   int i, j, k;
 
   MALLOC (grps, NOTCHAR);
   MALLOC (labels, NOTCHAR);
 
-  /* Initialize the set of letters, if necessary. */
-  if (! initialized)
-    {
-      initialized = 1;
-      for (i = 0; i < NOTCHAR; ++i)
-        if (IS_WORD_CONSTITUENT(i))
-          setbit(i, letters);
-      setbit(eolbyte, newline);
-    }
-
   zeroset(matches);
 
   for (i = 0; i < d->states[s].elems.nelem; ++i)
@@ -2420,18 +2503,20 @@ dfastate (int s, struct dfa *d, int trans[])
       if (pos.constraint != 0xFF)
         {
           if (! MATCHES_NEWLINE_CONTEXT(pos.constraint,
-                                         d->states[s].newline, 1))
+                                        d->states[s].context & CTX_NEWLINE,
+                                        CTX_NEWLINE))
             clrbit(eolbyte, matches);
           if (! MATCHES_NEWLINE_CONTEXT(pos.constraint,
-                                         d->states[s].newline, 0))
+                                        d->states[s].context & CTX_NEWLINE, 0))
             for (j = 0; j < CHARCLASS_INTS; ++j)
               matches[j] &= newline[j];
           if (! MATCHES_LETTER_CONTEXT(pos.constraint,
-                                        d->states[s].letter, 1))
+                                       d->states[s].context & CTX_LETTER,
+                                       CTX_LETTER))
             for (j = 0; j < CHARCLASS_INTS; ++j)
               matches[j] &= ~letters[j];
           if (! MATCHES_LETTER_CONTEXT(pos.constraint,
-                                        d->states[s].letter, 0))
+                                       d->states[s].context & CTX_LETTER, 0))
             for (j = 0; j < CHARCLASS_INTS; ++j)
               matches[j] &= letters[j];
 
@@ -2513,25 +2598,19 @@ dfastate (int s, struct dfa *d, int trans[])
      is to fail miserably. */
   if (d->searchflag)
     {
-      wants_newline = 0;
-      wants_letter = 0;
-      for (i = 0; i < d->states[0].elems.nelem; ++i)
-        {
-          if (PREV_NEWLINE_DEPENDENT(d->states[0].elems.elems[i].constraint))
-            wants_newline = 1;
-          if (PREV_LETTER_DEPENDENT(d->states[0].elems.elems[i].constraint))
-            wants_letter = 1;
-        }
+      /* Find the state(s) corresponding to the positions of state 0. */
       copy(&d->states[0].elems, &follows);
-      state = state_index(d, &follows, 0, 0);
-      if (wants_newline)
-        state_newline = state_index(d, &follows, 1, 0);
+      separate_contexts = state_separate_contexts(&follows, CTX_ANY);
+      state = state_index(d, &follows, 0);
+      if (separate_contexts & CTX_NEWLINE)
+        state_newline = state_index(d, &follows, CTX_NEWLINE);
       else
         state_newline = state;
-      if (wants_letter)
-        state_letter = state_index(d, &follows, 0, 1);
+      if (separate_contexts & CTX_LETTER)
+        state_letter = state_index(d, &follows, CTX_LETTER);
       else
         state_letter = state;
+
       for (i = 0; i < NOTCHAR; ++i)
         trans[i] = (IS_WORD_CONSTITUENT(i)) ? state_letter : state;
       trans[eolbyte] = state_newline;
@@ -2590,29 +2669,17 @@ dfastate (int s, struct dfa *d, int trans[])
           insert(d->states[0].elems.elems[j], &follows);
 
       /* Find out if the new state will want any context information. */
-      wants_newline = 0;
-      if (tstbit(eolbyte, labels[i]))
-        for (j = 0; j < follows.nelem; ++j)
-          if (PREV_NEWLINE_DEPENDENT(follows.elems[j].constraint))
-            wants_newline = 1;
-
-      wants_letter = 0;
-      for (j = 0; j < CHARCLASS_INTS; ++j)
-        if (labels[i][j] & letters[j])
-          break;
-      if (j < CHARCLASS_INTS)
-        for (j = 0; j < follows.nelem; ++j)
-          if (PREV_LETTER_DEPENDENT(follows.elems[j].constraint))
-            wants_letter = 1;
+      possible_contexts = charclass_context(labels[i]);
+      separate_contexts = state_separate_contexts(&follows, possible_contexts);
 
       /* Find the state(s) corresponding to the union of the follows. */
-      state = state_index(d, &follows, 0, 0);
-      if (wants_newline)
-        state_newline = state_index(d, &follows, 1, 0);
+      state = state_index(d, &follows, 0);
+      if (separate_contexts & CTX_NEWLINE)
+        state_newline = state_index(d, &follows, CTX_NEWLINE);
       else
         state_newline = state;
-      if (wants_letter)
-        state_letter = state_index(d, &follows, 0, 1);
+      if (separate_contexts & CTX_LETTER)
+        state_letter = state_index(d, &follows, CTX_LETTER);
       else
         state_letter = state;
 
@@ -2672,15 +2739,12 @@ build_state (int s, struct dfa *d)
 
   /* Set up the success bits for this state. */
   d->success[s] = 0;
-  if (ACCEPTS_IN_CONTEXT(d->states[s].newline, 1, d->states[s].letter, 0,
-      s, *d))
-    d->success[s] |= 4;
-  if (ACCEPTS_IN_CONTEXT(d->states[s].newline, 0, d->states[s].letter, 1,
-      s, *d))
-    d->success[s] |= 2;
-  if (ACCEPTS_IN_CONTEXT(d->states[s].newline, 0, d->states[s].letter, 0,
-      s, *d))
-    d->success[s] |= 1;
+  if (ACCEPTS_IN_CONTEXT(d->states[s].context, CTX_NEWLINE, s, *d))
+    d->success[s] |= CTX_NEWLINE;
+  if (ACCEPTS_IN_CONTEXT(d->states[s].context, CTX_LETTER, s, *d))
+    d->success[s] |= CTX_LETTER;
+  if (ACCEPTS_IN_CONTEXT(d->states[s].context, CTX_NONE, s, *d))
+    d->success[s] |= CTX_NONE;
 
   MALLOC(trans, NOTCHAR);
   dfastate(s, d, trans);
@@ -2840,33 +2904,27 @@ transit_state_singlebyte (struct dfa *d, int s, 
unsigned char const *p,
 static int
 match_anychar (struct dfa *d, int s, position pos, int idx)
 {
-  int newline = 0;
-  int letter = 0;
+  int context;
   wchar_t wc;
   int mbclen;
 
   wc = inputwcs[idx];
   mbclen = (mblen_buf[idx] == 0)? 1 : mblen_buf[idx];
 
-  /* Check context.  */
+  /* Check syntax bits.  */
   if (wc == (wchar_t)eolbyte)
     {
       if (!(syntax_bits & RE_DOT_NEWLINE))
         return 0;
-      newline = 1;
     }
   else if (wc == (wchar_t)'\0')
     {
       if (syntax_bits & RE_DOT_NOT_NULL)
         return 0;
-      newline = 1;
     }
 
-  if (iswalnum(wc) || wc == L'_')
-    letter = 1;
-
-  if (!SUCCEEDS_IN_CONTEXT(pos.constraint, d->states[s].newline,
-                           newline, d->states[s].letter, letter))
+  context = wchar_context(wc);
+  if (!SUCCEEDS_IN_CONTEXT(pos.constraint, d->states[s].context, context))
     return 0;
 
   return mbclen;
@@ -2889,29 +2947,25 @@ match_mb_charset (struct dfa *d, int s, position pos, 
int idx)
   /* Pointer to the structure to which we are currently refering.  */
   struct mb_char_classes *work_mbc;
 
-  int newline = 0;
-  int letter = 0;
+  int context;
   wchar_t wc;          /* Current refering character.  */
 
   wc = inputwcs[idx];
 
-  /* Check context.  */
+  /* Check syntax bits.  */
   if (wc == (wchar_t)eolbyte)
     {
       if (!(syntax_bits & RE_DOT_NEWLINE))
         return 0;
-      newline = 1;
     }
   else if (wc == (wchar_t)'\0')
     {
       if (syntax_bits & RE_DOT_NOT_NULL)
         return 0;
-      newline = 1;
     }
-  if (iswalnum(wc) || wc == L'_')
-    letter = 1;
-  if (!SUCCEEDS_IN_CONTEXT(pos.constraint, d->states[s].newline,
-                           newline, d->states[s].letter, letter))
+
+  context = wchar_context(wc);
+  if (!SUCCEEDS_IN_CONTEXT(pos.constraint, d->states[s].context, context))
     return 0;
 
   /* Assign the current refering operator to work_mbc.  */
@@ -3124,7 +3178,7 @@ transit_state (struct dfa *d, int s, unsigned char const 
**pp)
   transit_state_consume_1char(d, s, pp, match_lens, &mbclen, &follows);
 
   wc = inputwcs[*pp - mbclen - buf_begin];
-  s1 = state_index(d, &follows, wc == L'\n', iswalnum(wc));
+  s1 = state_index(d, &follows, wchar_context (wc));
   realloc_trans_if_necessary(d, s1);
 
   while (*pp - p1 < maxlen)
@@ -3141,7 +3195,7 @@ transit_state (struct dfa *d, int s, unsigned char const 
**pp)
         }
 
       wc = inputwcs[*pp - mbclen - buf_begin];
-      s1 = state_index(d, &follows, wc == L'\n', iswalnum(wc));
+      s1 = state_index(d, &follows, wchar_context (wc));
       realloc_trans_if_necessary(d, s1);
     }
   free(match_lens);
@@ -3206,14 +3260,14 @@ prepare_wc_buf (const char *begin, const char *end)
    points to the beginning of the buffer, and END points to the first byte
    after its end.  Note however that we store a sentinel byte (usually
    newline) in *END, so the actual buffer must be one byte longer.
-   When NEWLINE is nonzero, newlines may appear in the matching string.
+   When ALLOW_NL is nonzero, newlines may appear in the matching string.
    If COUNT is non-NULL, increment *COUNT once for each newline processed.
    Finally, if BACKREF is non-NULL set *BACKREF to indicate whether we
    encountered a back-reference (1) or not (0).  The caller may use this
    to decide whether to fall back on a backtracking matcher. */
 char *
 dfaexec (struct dfa *d, char const *begin, char *end,
-         int newline, int *count, int *backref)
+         int allow_nl, int *count, int *backref)
 {
   int s, s1;           /* Current state. */
   unsigned char const *p; /* Current input character. */
@@ -3221,18 +3275,6 @@ dfaexec (struct dfa *d, char const *begin, char *end,
                                    into a register. */
   unsigned char eol = eolbyte; /* Likewise for eolbyte.  */
   unsigned char saved_end;
-  static int sbit[NOTCHAR];    /* Table for anding with d->success. */
-  static int sbit_init;
-
-  if (! sbit_init)
-    {
-      unsigned int i;
-
-      sbit_init = 1;
-      for (i = 0; i < NOTCHAR; ++i)
-        sbit[i] = (IS_WORD_CONSTITUENT(i)) ? 2 : 1;
-      sbit[eol] = 4;
-    }
 
   if (! d->tralloc)
     build_state_zero(d);
@@ -3356,7 +3398,7 @@ dfaexec (struct dfa *d, char const *begin, char *end,
           continue;
         }
 
-      if (p[-1] == eol && newline)
+      if (p[-1] == eol && allow_nl)
         {
           s = d->newlines[s1];
           continue;

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=bd7e60f71231f3f74c6f6efdaf856c71eeaa61ef

commit bd7e60f71231f3f74c6f6efdaf856c71eeaa61ef
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Feb 10 13:21:44 2012 +0200

    New danish po file.

diff --git a/po/da.po b/po/da.po
index 50a51ab..85f84c9 100644
--- a/po/da.po
+++ b/po/da.po
@@ -1,22 +1,22 @@
 # Danish translation of gawk
 # Copyright (C) 2001 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gawk package.
-# Martin Sjögren <address@hidden>, 2001-2002.
+# Martin Sjögren <address@hidden>, 2001-2002.
 # Christer Andersson <address@hidden>, 2007.
-# Keld Simonsen <address@hidden>, 2002,2011.
-# Review by Torben Grøn Helligsø <address@hidden>, 2011.
+# Keld Simonsen <address@hidden>, 2002,2011,2012.
+# Review by Torben Grøn Helligsø <address@hidden>, 2011.
 # Review by Ask Hjorth Larsen <address@hidden>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: gawk 3.1.83\n"
+"Project-Id-Version: gawk 4.0.0h\n"
 "Report-Msgid-Bugs-To: address@hidden"
 "POT-Creation-Date: 2012-01-27 12:10+0200\n"
-"PO-Revision-Date: 2011-05-22 10:37+0200\n"
+"PO-Revision-Date: 2012-02-06 10:37+0100\n"
 "Last-Translator: Keld Simonsen <address@hidden>\n"
 "Language-Team: Danish <address@hidden>\n"
 "Language: da\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Lokalize 1.0\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -28,29 +28,29 @@ msgstr "fra %s"
 
 #: array.c:248
 msgid "attempt to use a scalar value as array"
-msgstr "forsøg på at bruge en skalar som array"
+msgstr "forsøg på at bruge en skalar som array"
 
 #: array.c:251
 #, c-format
 msgid "attempt to use function `%s' as an array"
-msgstr "forsøg på at bruge funktionen '%s' som et array"
+msgstr "forsøg på at bruge funktionen '%s' som et array"
 
 #: array.c:254
 #, c-format
 msgid "attempt to use scalar parameter `%s' as an array"
-msgstr "forsøg på at bruge skalarparameteren '%s' som et array"
+msgstr "forsøg på at bruge skalarparameteren '%s' som et array"
 
 #: array.c:257
 #, c-format
 msgid "attempt to use scalar `%s' as an array"
-msgstr "forsøg på at bruge skalar '%s' som et array"
+msgstr "forsøg på at bruge skalar '%s' som et array"
 
 #: array.c:302 array.c:707 builtin.c:84 builtin.c:1384 builtin.c:1426
 #: builtin.c:1439 builtin.c:1858 builtin.c:1870 eval.c:1135 eval.c:1139
 #: eval.c:1495 eval.c:1812
 #, c-format
 msgid "attempt to use array `%s' in a scalar context"
-msgstr "forsøg på at bruge array '%s' i skalarsammenhæng"
+msgstr "forsøg på at bruge array '%s' i skalarsammenhæng"
 
 #: array.c:513
 #, c-format
@@ -70,7 +70,7 @@ msgstr "delete: indeks '%s' findes ikke i array '%s'"
 #: array.c:734 eval.c:1865
 #, c-format
 msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
-msgstr "forsøg på at bruge skalaren '%s[\"%.*s\"]' som array"
+msgstr "forsøg på at bruge skalaren '%s[\"%.*s\"]' som array"
 
 #: array.c:910
 #, c-format
@@ -85,7 +85,7 @@ msgstr "%s: tom (nul)\n"
 #: array.c:919
 #, c-format
 msgid "%s: table_size = %d, array_size = %d\n"
-msgstr "%s: tabelstørrelse = %d, arraystørrelse = %d\n"
+msgstr "%s: tabelstørrelse = %d, arraystørrelse = %d\n"
 
 #: array.c:954
 #, c-format
@@ -111,31 +111,27 @@ msgstr "asorti: andet argument er ikke et array"
 
 #: array.c:1094
 msgid "asort: first argument not an array"
-msgstr "asort: første argument er ikke et array"
+msgstr "asort: første argument er ikke et array"
 
 #: array.c:1095
 msgid "asorti: first argument not an array"
-msgstr "asorti: første argument er ikke et array"
+msgstr "asorti: første argument er ikke et array"
 
 #: array.c:1102
 msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asort: kan ikke bruge et underarray af første argument for andet argument"
+msgstr "asort: kan ikke bruge et underarray af første argument for andet 
argument"
 
 #: array.c:1103
 msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asorti: kan ikke bruge et underarray af første argument for andet argument"
+msgstr "asorti: kan ikke bruge et underarray af første argument for andet 
argument"
 
 #: array.c:1108
 msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asort: kan ikke bruge et underarray af andet argument for første argument"
+msgstr "asort: kan ikke bruge et underarray af andet argument for første 
argument"
 
 #: array.c:1109
 msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asorti: kan ikke bruge et underarray af andet argument for første argument"
+msgstr "asorti: kan ikke bruge et underarray af andet argument for første 
argument"
 
 #: array.c:1655
 #, c-format
@@ -154,12 +150,11 @@ msgstr "%s-blokke skal have en handlingsdel"
 
 #: awkgram.y:252
 msgid "each rule must have a pattern or an action part"
-msgstr "hver regel skal have et mønster eller en handlingsdel"
+msgstr "hver regel skal have et mønster eller en handlingsdel"
 
 #: awkgram.y:323 awkgram.y:334
 msgid "old awk does not support multiple `BEGIN' or `END' rules"
-msgstr ""
-"gamle versioner af awk understøtter ikke flere 'BEGIN'- eller 'END'-regler"
+msgstr "gamle versioner af awk understøtter ikke flere 'BEGIN'- eller 
'END'-regler"
 
 #: awkgram.y:371
 #, c-format
@@ -178,7 +173,7 @@ msgstr "regexp-konstanten '/%s/' ser ud som en C-kommentar, 
men er det ikke"
 #: awkgram.y:528
 #, c-format
 msgid "duplicate case values in switch body: %s"
-msgstr "dublet case-værdier i switch-krop %s"
+msgstr "dublet case-værdier i switch-krop %s"
 
 #: awkgram.y:549
 msgid "duplicate `default' detected in switch body"
@@ -186,11 +181,11 @@ msgstr "dublet 'default' opdaget i switch-krop"
 
 #: awkgram.y:809
 msgid "`break' is not allowed outside a loop or switch"
-msgstr "'break' uden for en løkke eller switch er ikke tilladt"
+msgstr "'break' uden for en løkke eller switch er ikke tilladt"
 
 #: awkgram.y:818
 msgid "`continue' is not allowed outside a loop"
-msgstr "'continue' uden for en løkke er ikke tilladt"
+msgstr "'continue' uden for en løkke er ikke tilladt"
 
 #: awkgram.y:828
 #, c-format
@@ -212,9 +207,7 @@ msgstr "'return' brugt uden for funktion"
 
 #: awkgram.y:925
 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr ""
-"alenestående 'print' i BEGIN eller END-regel skulle muligvis være 'print "
-"\"\"'"
+msgstr "alenestående 'print' i BEGIN eller END-regel skulle muligvis være 
'print \"\"'"
 
 #: awkgram.y:995 awkgram.y:999 awkgram.y:1023
 msgid "`delete array' is a gawk extension"
@@ -230,20 +223,19 @@ msgstr "flertrins dobbeltrettede datakanaler fungerer 
ikke"
 
 #: awkgram.y:1238
 msgid "regular expression on right of assignment"
-msgstr "regulært udtryk i højreleddet af en tildeling"
+msgstr "regulært udtryk i højreleddet af en tildeling"
 
 #: awkgram.y:1249
 msgid "regular expression on left of `~' or `!~' operator"
-msgstr "regulært udtryk på venstre side af en '~'- eller '!~'-operator"
+msgstr "regulært udtryk på venstre side af en '~'- eller '!~'-operator"
 
 #: awkgram.y:1265 awkgram.y:1419
 msgid "old awk does not support the keyword `in' except after `for'"
-msgstr ""
-"gamle versioner af awk understøtter ikke nøgleordet 'in' undtagen efter 
'for'"
+msgstr "gamle versioner af awk understøtter ikke nøgleordet 'in' undtagen 
efter 'for'"
 
 #: awkgram.y:1275
 msgid "regular expression on right of comparison"
-msgstr "regulært udtryk i højreleddet af en sammenligning"
+msgstr "regulært udtryk i højreleddet af en sammenligning"
 
 #: awkgram.y:1394
 #, c-format
@@ -261,7 +253,7 @@ msgstr "ikke-omdirigeret 'getline' udefineret inden i 
END-handling"
 
 #: awkgram.y:1421
 msgid "old awk does not support multidimensional arrays"
-msgstr "gamle versioner af awk understøtter ikke flerdimensionale array"
+msgstr "gamle versioner af awk understøtter ikke flerdimensionale array"
 
 #: awkgram.y:1517
 msgid "call of `length' without parentheses is not portable"
@@ -299,11 +291,11 @@ msgstr "uventet nylinjetegn eller strengafslutning"
 #: awkgram.y:2300 awkgram.y:2358 awkgram.y:2542
 #, c-format
 msgid "can't open source file `%s' for reading (%s)"
-msgstr "kan ikke åbne kildefilen '%s' for læsning (%s)"
+msgstr "kan ikke åbne kildefilen '%s' for læsning (%s)"
 
 #: awkgram.y:2301 awkgram.y:2359 builtin.c:122
 msgid "reason unknown"
-msgstr "ukendt årsag"
+msgstr "ukendt årsag"
 
 #: awkgram.y:2317
 #, c-format
@@ -320,12 +312,12 @@ msgstr "tomt filnavn efter @include"
 
 #: awkgram.y:2494
 msgid "empty program text on command line"
-msgstr "tom programtekst på kommandolinjen"
+msgstr "tom programtekst på kommandolinjen"
 
 #: awkgram.y:2609
 #, c-format
 msgid "can't read sourcefile `%s' (%s)"
-msgstr "kan ikke læse kildefilen '%s' (%s)"
+msgstr "kan ikke læse kildefilen '%s' (%s)"
 
 #: awkgram.y:2620
 #, c-format
@@ -338,33 +330,33 @@ msgstr "kildefilen slutter ikke med en ny linje"
 
 #: awkgram.y:2882
 msgid "unterminated regexp ends with `\\' at end of file"
-msgstr "uafsluttet regulært udtryk slutter med '\\' i slutningen af filen"
+msgstr "uafsluttet regulært udtryk slutter med '\\' i slutningen af filen"
 
 #: awkgram.y:2906
 #, c-format
 msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "%s: %d: regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
+msgstr "%s: %d: regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
 
 #: awkgram.y:2910
 #, c-format
 msgid "tawk regex modifier `/.../%c' doesn't work in gawk"
-msgstr "regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
+msgstr "regex-ændringstegn '/.../%c' fra tawk virker ikke i gawk"
 
 #: awkgram.y:2917
 msgid "unterminated regexp"
-msgstr "uafsluttet regulært udtryk"
+msgstr "uafsluttet regulært udtryk"
 
 #: awkgram.y:2921
 msgid "unterminated regexp at end of file"
-msgstr "uafsluttet regulært udtryk i slutningen af filen"
+msgstr "uafsluttet regulært udtryk i slutningen af filen"
 
 #: awkgram.y:2980
 msgid "use of `\\ #...' line continuation is not portable"
-msgstr "brug af '\\ #...' for linjefortsættelse er ikke portabelt"
+msgstr "brug af '\\ #...' for linjefortsættelse er ikke portabelt"
 
 #: awkgram.y:2996
 msgid "backslash not last character on line"
-msgstr "sidste tegn på linjen er ikke en omvendt skråstreg"
+msgstr "sidste tegn på linjen er ikke en omvendt skråstreg"
 
 #: awkgram.y:3057
 msgid "POSIX does not allow operator `**='"
@@ -372,7 +364,7 @@ msgstr "POSIX tillader ikke operatoren '**='"
 
 #: awkgram.y:3059
 msgid "old awk does not support operator `**='"
-msgstr "gamle versioner af awk understøtter ikke operatoren '**='"
+msgstr "gamle versioner af awk understøtter ikke operatoren '**='"
 
 #: awkgram.y:3068
 msgid "POSIX does not allow operator `**'"
@@ -380,15 +372,15 @@ msgstr "POSIX tillader ikke operatoren '**'"
 
 #: awkgram.y:3070
 msgid "old awk does not support operator `**'"
-msgstr "gamle versioner af awk understøtter ikke operatoren '**'"
+msgstr "gamle versioner af awk understøtter ikke operatoren '**'"
 
 #: awkgram.y:3105
 msgid "operator `^=' is not supported in old awk"
-msgstr "operatoren '^=' understøttes ikke i gamle versioner af awk"
+msgstr "operatoren '^=' understøttes ikke i gamle versioner af awk"
 
 #: awkgram.y:3113
 msgid "operator `^' is not supported in old awk"
-msgstr "operatoren '^' understøttes ikke i gamle versioner af awk"
+msgstr "operatoren '^' understøttes ikke i gamle versioner af awk"
 
 #: awkgram.y:3206 awkgram.y:3222
 msgid "unterminated string"
@@ -417,7 +409,7 @@ msgstr "POSIX tillader ikke '%s'"
 #: awkgram.y:3483
 #, c-format
 msgid "`%s' is not supported in old awk"
-msgstr "'%s' understøttes ikke i gamle versioner af awk"
+msgstr "'%s' understøttes ikke i gamle versioner af awk"
 
 #: awkgram.y:3550
 msgid "`goto' considered harmful!\n"
@@ -431,13 +423,12 @@ msgstr "%d er et ugyldigt antal argumenter for %s"
 #: awkgram.y:3636
 #, c-format
 msgid "%s: string literal as last arg of substitute has no effect"
-msgstr ""
-"%s: bogstavelig streng som sidste argument til erstatning har ingen effekt"
+msgstr "%s: bogstavelig streng som sidste argument til erstatning har ingen 
effekt"
 
 #: awkgram.y:3641
 #, c-format
 msgid "%s third parameter is not a changeable object"
-msgstr "%s: tredje argument er ikke et ændringsbart objekt"
+msgstr "%s: tredje argument er ikke et ændringsbart objekt"
 
 #: awkgram.y:3714 awkgram.y:3717
 msgid "match: third argument is a gawk extension"
@@ -449,15 +440,11 @@ msgstr "close: andet argument er en gawk-udvidelse"
 
 #: awkgram.y:3786
 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
-"understregningstegn"
+msgstr "brug af dcgettext(_\"...\") er forkert: fjern det indledende 
understregningstegn"
 
 #: awkgram.y:3801
 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
-msgstr ""
-"brug af dcgettext(_\"...\") er forkert: fjern det indledende "
-"understregningstegn"
+msgstr "brug af dcgettext(_\"...\") er forkert: fjern det indledende 
understregningstegn"
 
 #: awkgram.y:3893
 #, c-format
@@ -472,7 +459,7 @@ msgstr "funktionen '%s': parameteren '%s' overskygger en 
global variabel"
 #: awkgram.y:4093
 #, c-format
 msgid "could not open `%s' for writing (%s)"
-msgstr "kunne ikke åbne '%s' for skrivning (%s)"
+msgstr "kunne ikke åbne '%s' for skrivning (%s)"
 
 #: awkgram.y:4094
 msgid "sending variable list to standard error"
@@ -499,9 +486,7 @@ msgstr "funktionen '%s': kan ikke bruge funktionsnavn som 
parameternavn"
 #: awkgram.y:4192
 #, c-format
 msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr ""
-"funktionen '%s': kan ikke bruge specialvariabel '%s' som en "
-"funktionsparameter"
+msgstr "funktionen '%s': kan ikke bruge specialvariabel '%s' som en 
funktionsparameter"
 
 #: awkgram.y:4208
 #, c-format
@@ -521,7 +506,7 @@ msgstr "funktionen '%s' defineret, men aldrig kaldt direkte"
 #: awkgram.y:4417
 #, c-format
 msgid "regexp constant for parameter #%d yields boolean value"
-msgstr "konstant regulært udtryk for parameter %d giver en boolesk værdi"
+msgstr "konstant regulært udtryk for parameter %d giver en boolesk værdi"
 
 #: awkgram.y:4526
 #, c-format
@@ -534,12 +519,12 @@ msgstr ""
 
 #: awkgram.y:4773 eval.c:2056
 msgid "division by zero attempted"
-msgstr "forsøgte at dividere med nul"
+msgstr "forsøgte at dividere med nul"
 
 #: awkgram.y:4782 eval.c:2072
 #, c-format
 msgid "division by zero attempted in `%%'"
-msgstr "forsøgte at dividere med nul i '%%'"
+msgstr "forsøgte at dividere med nul i '%%'"
 
 #: builtin.c:120
 #, c-format
@@ -557,27 +542,26 @@ msgstr "exp: fik et ikke-numerisk argument"
 #: builtin.c:141
 #, c-format
 msgid "exp: argument %g is out of range"
-msgstr "exp: argumentet %g er uden for det tilladte område"
+msgstr "exp: argumentet %g er uden for det tilladte område"
 
 #: builtin.c:200
 #, c-format
 msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr ""
-"fflush: kan ikke rense: datakanalen '%s' åbnet for læsning, ikke skrivning"
+msgstr "fflush: kan ikke rense: datakanalen '%s' åbnet for læsning, ikke 
skrivning"
 
 #: builtin.c:203
 #, c-format
 msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr "fflush: kan ikke rense: filen '%s' åbnet for læsning, ikke skrivning"
+msgstr "fflush: kan ikke rense: filen '%s' åbnet for læsning, ikke skrivning"
 
 #: builtin.c:215
 #, c-format
 msgid "fflush: `%s' is not an open file, pipe or co-process"
-msgstr "fflush: '%s' er ikke en åben fil, datakanal eller ko-proces"
+msgstr "fflush: '%s' er ikke en åben fil, datakanal eller ko-proces"
 
 #: builtin.c:333
 msgid "index: received non-string first argument"
-msgstr "indeks: første argument er ikke en streng"
+msgstr "indeks: første argument er ikke en streng"
 
 #: builtin.c:335
 msgid "index: received non-string second argument"
@@ -610,7 +594,7 @@ msgstr "log: fik et negativt argument %g"
 
 #: builtin.c:694 builtin.c:699
 msgid "fatal: must use `count$' on all formats or none"
-msgstr "fatal: skal bruge 'count$' på alle formater eller ikke nogen"
+msgstr "fatal: skal bruge 'count$' på alle formater eller ikke nogen"
 
 #: builtin.c:761
 #, c-format
@@ -620,12 +604,12 @@ msgstr "feltbredde ignoreret for '%%'-angivelse"
 #: builtin.c:763
 #, c-format
 msgid "precision is ignored for `%%' specifier"
-msgstr "præcision ignoreret for '%%'-angivelse"
+msgstr "præcision ignoreret for '%%'-angivelse"
 
 #: builtin.c:765
 #, c-format
 msgid "field width and precision are ignored for `%%' specifier"
-msgstr "feltbredde og præcision ignoreret for '%%'-angivelse"
+msgstr "feltbredde og præcision ignoreret for '%%'-angivelse"
 
 #: builtin.c:816
 msgid "fatal: `$' is not permitted in awk formats"
@@ -633,12 +617,12 @@ msgstr "fatal: '$' tillades ikke i awk-formater"
 
 #: builtin.c:825
 msgid "fatal: arg count with `$' must be > 0"
-msgstr "fatal: argumentantallet med '$' skal være > 0"
+msgstr "fatal: argumentantallet med '$' skal være > 0"
 
 #: builtin.c:829
 #, c-format
 msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr "fatal: argumentantallet %ld er større end antal givne argumenter"
+msgstr "fatal: argumentantallet %ld er større end antal givne argumenter"
 
 #: builtin.c:833
 msgid "fatal: `$' not permitted after period in format"
@@ -646,12 +630,11 @@ msgstr "fatal: '$' tillades ikke efter et punktum i 
formatet"
 
 #: builtin.c:849
 msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr ""
-"fatal: intet '$' angivet for bredde eller præcision af positionsangivet felt"
+msgstr "fatal: intet '$' angivet for bredde eller præcision af 
positionsangivet felt"
 
 #: builtin.c:920
 msgid "`l' is meaningless in awk formats; ignored"
-msgstr "'l' er meningsløst i awk-formater, ignoreret"
+msgstr "'l' er meningsløst i awk-formater, ignoreret"
 
 #: builtin.c:924
 msgid "fatal: `l' is not permitted in POSIX awk formats"
@@ -659,7 +642,7 @@ msgstr "fatal: 'l' tillades ikke i POSIX awk-formater"
 
 #: builtin.c:937
 msgid "`L' is meaningless in awk formats; ignored"
-msgstr "'L' er meningsløst i awk-formater, ignoreret"
+msgstr "'L' er meningsløst i awk-formater, ignoreret"
 
 #: builtin.c:941
 msgid "fatal: `L' is not permitted in POSIX awk formats"
@@ -667,7 +650,7 @@ msgstr "fatal: 'L' tillades ikke i POSIX awk-formater"
 
 #: builtin.c:954
 msgid "`h' is meaningless in awk formats; ignored"
-msgstr "'h' er meningsløst i awk-formater, ignoreret"
+msgstr "'h' er meningsløst i awk-formater, ignoreret"
 
 #: builtin.c:958
 msgid "fatal: `h' is not permitted in POSIX awk formats"
@@ -676,17 +659,16 @@ msgstr "fatal: 'h' tillades ikke i POSIX awk-formater"
 #: builtin.c:1271
 #, c-format
 msgid "[s]printf: value %g is out of range for `%%%c' format"
-msgstr "[s]printf: værdi %g er uden for område for '%%%c'-format"
+msgstr "[s]printf: værdi %g er uden for område for '%%%c'-format"
 
 #: builtin.c:1331
 #, c-format
 msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr ""
-"ignorerer ukendt formatspecificeringstegn '%c': intet argument konverteret"
+msgstr "ignorerer ukendt formatspecificeringstegn '%c': intet argument 
konverteret"
 
 #: builtin.c:1336
 msgid "fatal: not enough arguments to satisfy format string"
-msgstr "fatal: for få argumenter til formatstrengen"
+msgstr "fatal: for få argumenter til formatstrengen"
 
 #: builtin.c:1338
 msgid "^ ran out for this one"
@@ -716,22 +698,22 @@ msgstr "sqrt: kaldt med negativt argument %g"
 #: builtin.c:1502
 #, c-format
 msgid "substr: length %g is not >= 1"
-msgstr "substr: længden %g er ikke >= 1"
+msgstr "substr: længden %g er ikke >= 1"
 
 #: builtin.c:1504
 #, c-format
 msgid "substr: length %g is not >= 0"
-msgstr "substr: længden %g er ikke >= 0"
+msgstr "substr: længden %g er ikke >= 0"
 
 #: builtin.c:1511
 #, c-format
 msgid "substr: non-integer length %g will be truncated"
-msgstr "substr: længden %g som ikke er et heltal vil blive trunkeret"
+msgstr "substr: længden %g som ikke er et heltal vil blive trunkeret"
 
 #: builtin.c:1516
 #, c-format
 msgid "substr: length %g too big for string indexing, truncating to %g"
-msgstr "substr: længden %g for stor til strengindeksering, trunkerer til %g"
+msgstr "substr: længden %g for stor til strengindeksering, trunkerer til %g"
 
 #: builtin.c:1528
 #, c-format
@@ -750,19 +732,16 @@ msgstr "substr: kildestrengen er tom"
 #: builtin.c:1574
 #, c-format
 msgid "substr: start index %g is past end of string"
-msgstr "substr: startindeks %g er forbi slutningen på strengen"
+msgstr "substr: startindeks %g er forbi slutningen på strengen"
 
 #: builtin.c:1582
 #, c-format
-msgid ""
-"substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr ""
-"substr: længden %g ved startindeks %g overskrider længden af første 
argument "
-"(%lu)"
+msgid "substr: length %g at start index %g exceeds length of first argument 
(%lu)"
+msgstr "substr: længden %g ved startindeks %g overskrider længden af første 
argument (%lu)"
 
 #: builtin.c:1656
 msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr "strftime: formatværdi i PROCINFO[\"strftime\"] har numerisk type"
+msgstr "strftime: formatværdi i PROCINFO[\"strftime\"] har numerisk type"
 
 #: builtin.c:1679
 msgid "strftime: received non-numeric second argument"
@@ -770,11 +749,11 @@ msgstr "strftime: fik et ikke-numerisk andet argument"
 
 #: builtin.c:1682
 msgid "strftime: second argument less than 0 or too big for time_t"
-msgstr ""
+msgstr "strftime: andet argument mindre end 0 eller for stort til time_t"
 
 #: builtin.c:1689
 msgid "strftime: received non-string first argument"
-msgstr "strftime: fik et første argument som ikke er en streng"
+msgstr "strftime: fik et første argument som ikke er en streng"
 
 #: builtin.c:1695
 msgid "strftime: received empty format string"
@@ -786,7 +765,7 @@ msgstr "mktime: fik et argument som ikke er en streng"
 
 #: builtin.c:1778
 msgid "mktime: at least one of the values is out of the default range"
-msgstr "mktime: mindst én af værdierne er udenfor standardområdet"
+msgstr "mktime: mindst én af værdierne er udenfor standardområdet"
 
 #: builtin.c:1813
 msgid "'system' function not allowed in sandbox mode"
@@ -816,7 +795,7 @@ msgstr "toupper: fik et argument som ikke er en streng"
 
 #: builtin.c:2097
 msgid "atan2: received non-numeric first argument"
-msgstr "atan2: fik et ikke-numerisk første argument"
+msgstr "atan2: fik et ikke-numerisk første argument"
 
 #: builtin.c:2099
 msgid "atan2: received non-numeric second argument"
@@ -844,7 +823,7 @@ msgstr "gensub: 0 i tredje argument behandlet som 1"
 
 #: builtin.c:2775
 msgid "lshift: received non-numeric first argument"
-msgstr "lshift: fik et ikke-numerisk første argument"
+msgstr "lshift: fik et ikke-numerisk første argument"
 
 #: builtin.c:2777
 msgid "lshift: received non-numeric second argument"
@@ -853,22 +832,21 @@ msgstr "lshift: fik et ikke-numerisk andet argument"
 #: builtin.c:2783
 #, c-format
 msgid "lshift(%lf, %lf): negative values will give strange results"
-msgstr "lshift(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "lshift(%lf, %lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2785
 #, c-format
 msgid "lshift(%lf, %lf): fractional values will be truncated"
-msgstr "lshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "lshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:2787
 #, c-format
 msgid "lshift(%lf, %lf): too large shift value will give strange results"
-msgstr ""
-"lshift(%lf, %lf): for store skifteværdier vil give mærkelige resultater"
+msgstr "lshift(%lf, %lf): for store skifteværdier vil give mærkelige 
resultater"
 
 #: builtin.c:2812
 msgid "rshift: received non-numeric first argument"
-msgstr "rshift: fik et ikke-numerisk første argument"
+msgstr "rshift: fik et ikke-numerisk første argument"
 
 #: builtin.c:2814
 msgid "rshift: received non-numeric second argument"
@@ -877,22 +855,21 @@ msgstr "rshift: fik et ikke-numerisk andet argument"
 #: builtin.c:2820
 #, c-format
 msgid "rshift(%lf, %lf): negative values will give strange results"
-msgstr "rshift(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "rshift(%lf, %lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2822
 #, c-format
 msgid "rshift(%lf, %lf): fractional values will be truncated"
-msgstr "rshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "rshift(%lf, %lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:2824
 #, c-format
 msgid "rshift(%lf, %lf): too large shift value will give strange results"
-msgstr ""
-"rshift(%lf, %lf): for store skifteværdier vil give mærkelige resultater"
+msgstr "rshift(%lf, %lf): for store skifteværdier vil give mærkelige 
resultater"
 
 #: builtin.c:2849
 msgid "and: received non-numeric first argument"
-msgstr "and: fik et ikke-numerisk første argument"
+msgstr "and: fik et ikke-numerisk første argument"
 
 #: builtin.c:2851
 msgid "and: received non-numeric second argument"
@@ -901,16 +878,16 @@ msgstr "and: fik et ikke-numerisk andet argument"
 #: builtin.c:2857
 #, c-format
 msgid "and(%lf, %lf): negative values will give strange results"
-msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "and(%lf, %lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2859
 #, c-format
 msgid "and(%lf, %lf): fractional values will be truncated"
-msgstr "and(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "and(%lf, %lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:2884
 msgid "or: received non-numeric first argument"
-msgstr "or: fik et ikke-numerisk første argument"
+msgstr "or: fik et ikke-numerisk første argument"
 
 #: builtin.c:2886
 msgid "or: received non-numeric second argument"
@@ -919,16 +896,16 @@ msgstr "or: fik et ikke-numerisk andet argument"
 #: builtin.c:2892
 #, c-format
 msgid "or(%lf, %lf): negative values will give strange results"
-msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "or(%lf, %lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2894
 #, c-format
 msgid "or(%lf, %lf): fractional values will be truncated"
-msgstr "or(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "or(%lf, %lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:2922
 msgid "xor: received non-numeric first argument"
-msgstr "xor: fik et ikke-numerisk første argument"
+msgstr "xor: fik et ikke-numerisk første argument"
 
 #: builtin.c:2924
 msgid "xor: received non-numeric second argument"
@@ -937,12 +914,12 @@ msgstr "xor: fik et ikke-numerisk andet argument"
 #: builtin.c:2930
 #, c-format
 msgid "xor(%lf, %lf): negative values will give strange results"
-msgstr "xor(%lf, %lf): negative værdier vil give mærkelige resultater"
+msgstr "xor(%lf, %lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2932
 #, c-format
 msgid "xor(%lf, %lf): fractional values will be truncated"
-msgstr "xor(%lf, %lf): kommatalsværdier vil blive trunkeret"
+msgstr "xor(%lf, %lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:2956 builtin.c:2962
 msgid "compl: received non-numeric argument"
@@ -951,12 +928,12 @@ msgstr "compl: fik et ikke-numerisk argument"
 #: builtin.c:2964
 #, c-format
 msgid "compl(%lf): negative value will give strange results"
-msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
+msgstr "compl(%lf): negative værdier vil give mærkelige resultater"
 
 #: builtin.c:2966
 #, c-format
 msgid "compl(%lf): fractional value will be truncated"
-msgstr "compl(%lf): kommatalsværdier vil blive trunkeret"
+msgstr "compl(%lf): kommatalsværdier vil blive trunkeret"
 
 #: builtin.c:3135
 #, c-format
@@ -976,11 +953,11 @@ msgstr "ukendt opkode %d"
 #: eval.c:434
 #, c-format
 msgid "opcode %s not an operator or keyword"
-msgstr "opkode %s er ikke en operator eller et nøgleord"
+msgstr "opkode %s er ikke en operator eller et nøgleord"
 
 #: eval.c:488
 msgid "buffer overflow in genflags2str"
-msgstr "bufferoverløb i genflags2str"
+msgstr "bufferoverløb i genflags2str"
 
 #: eval.c:698
 #, c-format
@@ -1004,7 +981,7 @@ msgstr "'BINMODE' er en gawk-udvidelse"
 #: eval.c:812
 #, c-format
 msgid "BINMODE value `%s' is invalid, treated as 3"
-msgstr "BINMODE værdi '%s' er ugyldig, behandles som 3"
+msgstr "BINMODE værdi '%s' er ugyldig, behandles som 3"
 
 #: eval.c:902
 #, c-format
@@ -1013,7 +990,7 @@ msgstr "forkert '%sFMT'-specifikation '%s'"
 
 #: eval.c:980
 msgid "turning off `--lint' due to assignment to `LINT'"
-msgstr "deaktiverer '--lint' på grund af en tildeling til 'LINT'"
+msgstr "deaktiverer '--lint' på grund af en tildeling til 'LINT'"
 
 #: eval.c:1127 eval.c:1777
 #, c-format
@@ -1027,16 +1004,16 @@ msgstr "reference til ikke-initieret argument '%s'"
 
 #: eval.c:1177
 msgid "attempt to field reference from non-numeric value"
-msgstr "forsøg på at referere til et felt fra ikke-numerisk værdi"
+msgstr "forsøg på at referere til et felt fra ikke-numerisk værdi"
 
 #: eval.c:1179
 msgid "attempt to field reference from null string"
-msgstr "forsøg på at referere til et felt fra tom streng"
+msgstr "forsøg på at referere til et felt fra tom streng"
 
 #: eval.c:1185
 #, c-format
 msgid "attempt to access field %ld"
-msgstr "forsøg på at få adgang til felt %ld"
+msgstr "forsøg på at få adgang til felt %ld"
 
 #: eval.c:1194
 #, c-format
@@ -1055,21 +1032,21 @@ msgstr "unwind_stack: uventet type `%s'"
 
 #: eval.c:1532
 msgid "division by zero attempted in `/='"
-msgstr "forsøgte at dividere med nul i '/='"
+msgstr "forsøgte at dividere med nul i '/='"
 
 #: eval.c:1539
 #, c-format
 msgid "division by zero attempted in `%%='"
-msgstr "forsøgte at dividere med nul i '%%='"
+msgstr "forsøgte at dividere med nul i '%%='"
 
 #: eval.c:1876 eval.c:2122
 #, c-format
 msgid "attempt to use array `%s[\"%.*s\"]' in a scalar context"
-msgstr "forsøg på at bruge array '%s[\"%.*s\"]' i skalarsammenhæng"
+msgstr "forsøg på at bruge array '%s[\"%.*s\"]' i skalarsammenhæng"
 
 #: eval.c:1907
 msgid "assignment used in conditional context"
-msgstr "tildeling brugt i sammenligningsammenhæng"
+msgstr "tildeling brugt i sammenligningsammenhæng"
 
 #: eval.c:1911
 msgid "statement has no effect"
@@ -1078,9 +1055,7 @@ msgstr "kommandoen har ingen effekt"
 #: eval.c:2343
 #, c-format
 msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
-msgstr ""
-"for-løkke: array '%s' ændrede størrelse fra %ld til %ld under udførelse 
af "
-"løkken"
+msgstr "for-løkke: array '%s' ændrede størrelse fra %ld til %ld under 
udførelse af løkken"
 
 #: eval.c:2458
 #, c-format
@@ -1100,7 +1075,7 @@ msgstr "ikke-omdirigeret 'getline' ugyldig inden i 
'%s'-regel"
 #: eval.c:2600
 #, c-format
 msgid "error reading input file `%s': %s"
-msgstr "fejl ved læsning af inddatafilen '%s': %s"
+msgstr "fejl ved læsning af inddatafilen '%s': %s"
 
 #: eval.c:2614
 #, c-format
@@ -1108,9 +1083,8 @@ msgid "`nextfile' cannot be called from a `%s' rule"
 msgstr "'nextfile' kan ikke kaldes fra en '%s'-regel"
 
 #: eval.c:2661
-#, fuzzy
 msgid "`exit' cannot be called in the current context"
-msgstr "'next' kan ikke kaldes fra en '%s'-regel"
+msgstr "'exit' kan ikke kaldes i den aktuelle kontekst"
 
 #: eval.c:2700
 #, c-format
@@ -1120,7 +1094,7 @@ msgstr "'next' kan ikke kaldes fra en '%s'-regel"
 #: eval.c:2766
 #, c-format
 msgid "Sorry, don't know how to interpret `%s'"
-msgstr "Véd desværre ikke hvordan '%s' skal fortolkes"
+msgstr "Véd desværre ikke hvordan '%s' skal fortolkes"
 
 #: ext.c:64
 msgid "extensions are not allowed in sandbox mode"
@@ -1133,22 +1107,17 @@ msgstr "'extension' er en gawk-udvidelse"
 #: ext.c:85
 #, c-format
 msgid "fatal: extension: cannot open `%s' (%s)\n"
-msgstr "atalt: extension: kan ikke åbne '%s' (%s)\n"
+msgstr "atalt: extension: kan ikke åbne '%s' (%s)\n"
 
 #: ext.c:94
 #, c-format
-msgid ""
-"fatal: extension: library `%s': does not define "
-"`plugin_is_GPL_compatible' (%s)\n"
-msgstr ""
-"fatalt: extension: bibliotek '%s': definer ikke "
-"'plugin_is_GPL_compatible' (%s)\n"
+msgid "fatal: extension: library `%s': does not define 
`plugin_is_GPL_compatible' (%s)\n"
+msgstr "fatalt: extension: bibliotek '%s': definer ikke 
'plugin_is_GPL_compatible' (%s)\n"
 
 #: ext.c:103
 #, c-format
 msgid "fatal: extension: library `%s': cannot call function `%s' (%s)\n"
-msgstr ""
-"fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' (%s)\n"
+msgstr "fatalt: extension: bibliotek '%s': kan ikke kalde funktionen '%s' 
(%s)\n"
 
 #: ext.c:137
 msgid "extension: missing function name"
@@ -1197,22 +1166,20 @@ msgstr "funktion '%s': mangler argument nummer %d"
 #: ext.c:289
 #, c-format
 msgid "function `%s': argument #%d: attempt to use scalar as an array"
-msgstr ""
-"funktion '%s': argument nummer %d: forsøg på at bruge skalar som et array"
+msgstr "funktion '%s': argument nummer %d: forsøg på at bruge skalar som et 
array"
 
 #: ext.c:293
 #, c-format
 msgid "function `%s': argument #%d: attempt to use array as a scalar"
-msgstr ""
-"funktion '%s': argument nummer %d: forsøg på at bruge array som en skalar"
+msgstr "funktion '%s': argument nummer %d: forsøg på at bruge array som en 
skalar"
 
 #: ext.c:306
 msgid "Operation Not Supported"
-msgstr "Operationen understøttes ikke"
+msgstr "Operationen understøttes ikke"
 
 #: field.c:328
 msgid "NF set to negative value"
-msgstr "NF sat til en negativ værdi"
+msgstr "NF sat til en negativ værdi"
 
 #: field.c:951 field.c:958 field.c:962
 msgid "split: fourth argument is a gawk extension"
@@ -1232,13 +1199,11 @@ msgstr "split: kan ikke bruge det samme array som andet 
og fjerde argument"
 
 #: field.c:978
 msgid "split: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"split: kan ikke bruge et underarray af andet argument som fjerde argument"
+msgstr "split: kan ikke bruge et underarray af andet argument som fjerde 
argument"
 
 #: field.c:981
 msgid "split: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"split: kan ikke bruge et underarray af fjerde argument som andet argument"
+msgstr "split: kan ikke bruge et underarray af fjerde argument som andet 
argument"
 
 #: field.c:1010
 msgid "split: null string for third arg is a gawk extension"
@@ -1262,13 +1227,11 @@ msgstr "patsplit: kan ikke bruge det samme array som 
andet og fjerde argument"
 
 #: field.c:1070
 msgid "patsplit: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"patsplit: kan ikke bruge et underarray af andet argument som fjerde argument"
+msgstr "patsplit: kan ikke bruge et underarray af andet argument som fjerde 
argument"
 
 #: field.c:1073
 msgid "patsplit: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"patsplit: kan ikke bruge et underarray af fjerde argument som andet argument"
+msgstr "patsplit: kan ikke bruge et underarray af fjerde argument som andet 
argument"
 
 #: field.c:1110
 msgid "`FIELDWIDTHS' is a gawk extension"
@@ -1277,7 +1240,7 @@ msgstr "'FIELDWIDTHS' er en gawk-udvidelse"
 #: field.c:1173
 #, c-format
 msgid "invalid FIELDWIDTHS value, near `%s'"
-msgstr "ugyldig FIELDWIDTHS værdi, nær '%s"
+msgstr "ugyldig FIELDWIDTHS værdi, nær '%s"
 
 #: field.c:1246
 msgid "null string for `FS' is a gawk extension"
@@ -1285,7 +1248,7 @@ msgstr "tom streng som 'FS' er en gawk-udvidelse"
 
 #: field.c:1250
 msgid "old awk does not support regexps as value of `FS'"
-msgstr "gamle versioner af awk understøtter ikke regexp'er som værdi for 
'FS'"
+msgstr "gamle versioner af awk understøtter ikke regexp'er som værdi for 'FS'"
 
 #: field.c:1369
 msgid "`FPAT' is a gawk extension"
@@ -1309,7 +1272,7 @@ msgstr "%s: flaget '%c%s' tillader ikke noget argument\n"
 #: getopt.c:684 getopt.c:703
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: flaget '--%s' kræver et argument\n"
+msgstr "%s: flaget '--%s' kræver et argument\n"
 
 #: getopt.c:741 getopt.c:744
 #, c-format
@@ -1329,7 +1292,7 @@ msgstr "%s: ugyldigt flag - '%c'\n"
 #: getopt.c:857 getopt.c:874 getopt.c:1082 getopt.c:1100
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: flaget kræver et argument - '%c'\n"
+msgstr "%s: flaget kræver et argument - '%c'\n"
 
 #: getopt.c:930 getopt.c:946
 #, c-format
@@ -1344,7 +1307,7 @@ msgstr "%s: flaget '-W %s' tillader ikke noget argument\n"
 #: getopt.c:1009 getopt.c:1027
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: flaget '-W %s' kræver et argument\n"
+msgstr "%s: flaget '-W %s' kræver et argument\n"
 
 #: io.c:280
 #, c-format
@@ -1354,7 +1317,7 @@ msgstr "kommandolinjeargument '%s' er et katalog, 
oversprunget"
 #: io.c:283 io.c:385
 #, c-format
 msgid "cannot open file `%s' for reading (%s)"
-msgstr "kan ikke åbne filen '%s' for læsning (%s)"
+msgstr "kan ikke åbne filen '%s' for læsning (%s)"
 
 #: io.c:501
 #, c-format
@@ -1368,38 +1331,37 @@ msgstr "omdirigering ikke tilladt i sandkasse-tilstand"
 #: io.c:612
 #, c-format
 msgid "expression in `%s' redirection only has numeric value"
-msgstr "udtrykket i '%s'-omdirigering har kun numerisk værdi"
+msgstr "udtrykket i '%s'-omdirigering har kun numerisk værdi"
 
 #: io.c:618
 #, c-format
 msgid "expression for `%s' redirection has null string value"
-msgstr "udtrykket for '%s'-omdirigering har en tom streng som værdi"
+msgstr "udtrykket for '%s'-omdirigering har en tom streng som værdi"
 
 #: io.c:623
 #, c-format
 msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr ""
-"filnavnet '%s' for '%s'-omdirigering kan være resultatet af et logisk udtryk"
+msgstr "filnavnet '%s' for '%s'-omdirigering kan være resultatet af et logisk 
udtryk"
 
 #: io.c:666
 #, c-format
 msgid "unnecessary mixing of `>' and `>>' for file `%.*s'"
-msgstr "unødig blanding af '>' og '>>' for filen '%.*s'"
+msgstr "unødig blanding af '>' og '>>' for filen '%.*s'"
 
 #: io.c:719
 #, c-format
 msgid "can't open pipe `%s' for output (%s)"
-msgstr "kan ikke åbne datakanalen '%s' for udskrivning (%s)"
+msgstr "kan ikke åbne datakanalen '%s' for udskrivning (%s)"
 
 #: io.c:729
 #, c-format
 msgid "can't open pipe `%s' for input (%s)"
-msgstr "kan ikke åbne datakanalen '%s' for indtastning (%s)"
+msgstr "kan ikke åbne datakanalen '%s' for indtastning (%s)"
 
 #: io.c:752
 #, c-format
 msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr "kan ikke åbne tovejsdatakanalen '%s' for ind-/uddata (%s)"
+msgstr "kan ikke åbne tovejsdatakanalen '%s' for ind-/uddata (%s)"
 
 #: io.c:834
 #, c-format
@@ -1412,11 +1374,8 @@ msgid "can't redirect to `%s' (%s)"
 msgstr "kan ikke omdirigere til '%s' (%s)"
 
 #: io.c:888
-msgid ""
-"reached system limit for open files: starting to multiplex file descriptors"
-msgstr ""
-"nåede systembegrænsningen for åbne filer: begynder at multiplekse "
-"fildeskriptorer"
+msgid "reached system limit for open files: starting to multiplex file 
descriptors"
+msgstr "nåede systembegrænsningen for åbne filer: begynder at multiplekse 
fildeskriptorer"
 
 #: io.c:904
 #, c-format
@@ -1425,26 +1384,25 @@ msgstr "lukning af '%s' mislykkedes (%s)."
 
 #: io.c:912
 msgid "too many pipes or input files open"
-msgstr "for mange datakanaler eller inddatafiler åbne"
+msgstr "for mange datakanaler eller inddatafiler åbne"
 
 #: io.c:934
 msgid "close: second argument must be `to' or `from'"
-msgstr "close: andet argument skal være 'to' eller 'from'"
+msgstr "close: andet argument skal være 'to' eller 'from'"
 
 #: io.c:951
 #, c-format
 msgid "close: `%.*s' is not an open file, pipe or co-process"
-msgstr "close: '%.*s' er ikke en åben fil, datakanal eller ko-proces"
+msgstr "close: '%.*s' er ikke en åben fil, datakanal eller ko-proces"
 
 #: io.c:956
 msgid "close of redirection that was never opened"
-msgstr "lukning af omdirigering som aldrig blev åbnet"
+msgstr "lukning af omdirigering som aldrig blev åbnet"
 
 #: io.c:1053
 #, c-format
 msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr ""
-"close: omdirigeringen '%s' blev ikke åbnet med '|&', andet argument 
ignoreret"
+msgstr "close: omdirigeringen '%s' blev ikke åbnet med '|&', andet argument 
ignoreret"
 
 #: io.c:1069
 #, c-format
@@ -1509,7 +1467,7 @@ msgstr "lokal port %s ugyldig i '/inet'"
 #: io.c:1279
 #, c-format
 msgid "remote host and port information (%s, %s) invalid"
-msgstr "fjernvært og portinformation (%s, %s) ugyldige"
+msgstr "fjernvært og portinformation (%s, %s) ugyldige"
 
 #: io.c:1431
 #, c-format
@@ -1519,7 +1477,7 @@ msgstr "ingen (kendt) protokol opgivet i special-filnavn 
'%s'"
 #: io.c:1445
 #, c-format
 msgid "special file name `%s' is incomplete"
-msgstr "special-filnavn '%s' er ufuldstændigt"
+msgstr "special-filnavn '%s' er ufuldstændigt"
 
 #: io.c:1462
 msgid "must supply a remote hostname to `/inet'"
@@ -1531,12 +1489,12 @@ msgstr "fjernport til '/inet' skal angives"
 
 #: io.c:1526
 msgid "TCP/IP communications are not supported"
-msgstr "TCP/IP-kommunikation understøttes ikke"
+msgstr "TCP/IP-kommunikation understøttes ikke"
 
 #: io.c:1693
 #, c-format
 msgid "could not open `%s', mode `%s'"
-msgstr "kunne ikke åbne '%s', tilstand '%s'"
+msgstr "kunne ikke åbne '%s', tilstand '%s'"
 
 #: io.c:1747
 #, c-format
@@ -1551,8 +1509,7 @@ msgstr "lukning af standard ud i underproces mislykkedes 
(%s)"
 #: io.c:1752
 #, c-format
 msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr ""
-"flytning af slave-pty til standard ud i underproces mislykkedes (dup: %s)"
+msgstr "flytning af slave-pty til standard ud i underproces mislykkedes (dup: 
%s)"
 
 #: io.c:1754 io.c:1922
 #, c-format
@@ -1562,8 +1519,7 @@ msgstr "lukning af standard ind i underproces mislykkedes 
(%s)"
 #: io.c:1757
 #, c-format
 msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr ""
-"flytning af slave-pty til standard ind i underproces mislykkedes (dup: %s)"
+msgstr "flytning af slave-pty til standard ind i underproces mislykkedes (dup: 
%s)"
 
 #: io.c:1759 io.c:1780
 #, c-format
@@ -1573,22 +1529,20 @@ msgstr "lukning af slave-pty mislykkedes (%s)"
 #: io.c:1858 io.c:1920 io.c:2052 io.c:2077
 #, c-format
 msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr ""
-"flytning af datakanal til standard ud i underproces mislykkedes (dup: %s)"
+msgstr "flytning af datakanal til standard ud i underproces mislykkedes (dup: 
%s)"
 
 #: io.c:1865 io.c:1925
 #, c-format
 msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr ""
-"flytning af datakanalen til standard ind i underproces mislykkedes (dup: %s)"
+msgstr "flytning af datakanalen til standard ind i underproces mislykkedes 
(dup: %s)"
 
 #: io.c:1885 io.c:2067
 msgid "restoring stdout in parent process failed\n"
-msgstr "genskabelse af standard ud i forælderprocessen mislykkedes\n"
+msgstr "genskabelse af standard ud i forælderprocessen mislykkedes\n"
 
 #: io.c:1893
 msgid "restoring stdin in parent process failed\n"
-msgstr "genskabelse af standard ind i forælderprocessen mislykkedes\n"
+msgstr "genskabelse af standard ind i forælderprocessen mislykkedes\n"
 
 #: io.c:1928 io.c:2079 io.c:2093
 #, c-format
@@ -1597,12 +1551,12 @@ msgstr "lukning af datakanalen mislykkedes (%s)"
 
 #: io.c:1973
 msgid "`|&' not supported"
-msgstr "'|&' understøttes ikke"
+msgstr "'|&' understøttes ikke"
 
 #: io.c:2039
 #, c-format
 msgid "cannot open pipe `%s' (%s)"
-msgstr "kan ikke åbne datakanalen '%s' (%s)"
+msgstr "kan ikke åbne datakanalen '%s' (%s)"
 
 #: io.c:2087
 #, c-format
@@ -1620,11 +1574,11 @@ msgstr "kunne ikke allokere mere hukommelse til inddata"
 
 #: io.c:3127
 msgid "multicharacter value of `RS' is a gawk extension"
-msgstr "'RS' som flertegnsværdi er en gawk-udvidelse"
+msgstr "'RS' som flertegnsværdi er en gawk-udvidelse"
 
 #: io.c:3232
 msgid "IPv6 communication is not supported"
-msgstr "IPv6-kommunikation understøttes ikke"
+msgstr "IPv6-kommunikation understøttes ikke"
 
 #: main.c:364
 msgid "`-m[fr]' option irrelevant in gawk"
@@ -1646,43 +1600,43 @@ msgstr "%s: flaget '-W %s' ukendt, ignoreret\n"
 #: main.c:513
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: flaget kræver et argument -- %c\n"
+msgstr "%s: flaget kræver et argument -- %c\n"
 
 #: main.c:534
 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr "miljøvariablen 'POSIXLY_CORRECT' sat: aktiverer '--posix'"
+msgstr "miljøvariablen 'POSIXLY_CORRECT' sat: aktiverer '--posix'"
 
 #: main.c:540
 msgid "`--posix' overrides `--traditional'"
-msgstr "'--posix' tilsidesætter '--traditional'"
+msgstr "'--posix' tilsidesætter '--traditional'"
 
 #: main.c:551
 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr "'--posix'/'--traditional' tilsidesætter '--non-decimal-data'"
+msgstr "'--posix'/'--traditional' tilsidesætter '--non-decimal-data'"
 
 #: main.c:555
 #, c-format
 msgid "running %s setuid root may be a security problem"
-msgstr "at køre %s setuid root kan være et sikkerhedsproblem"
+msgstr "at køre %s setuid root kan være et sikkerhedsproblem"
 
 #: main.c:560
 msgid "`--posix' overrides `--binary'"
-msgstr "'--posix' tilsidesætter '--binary'"
+msgstr "'--posix' tilsidesætter '--binary'"
 
 #: main.c:611
 #, c-format
 msgid "can't set binary mode on stdin (%s)"
-msgstr "kan ikke sætte binær tilstand på standard ind (%s)"
+msgstr "kan ikke sætte binær tilstand på standard ind (%s)"
 
 #: main.c:614
 #, c-format
 msgid "can't set binary mode on stdout (%s)"
-msgstr "kan ikke sætte binær tilstand på standard ud (%s)"
+msgstr "kan ikke sætte binær tilstand på standard ud (%s)"
 
 #: main.c:616
 #, c-format
 msgid "can't set binary mode on stderr (%s)"
-msgstr "kan ikke sætte binær tilstand på standard fejl (%s)"
+msgstr "kan ikke sætte binær tilstand på standard fejl (%s)"
 
 #: main.c:655
 msgid "no program text at all!"
@@ -1712,7 +1666,7 @@ msgstr "\t-F fs\t\t\t--field-separator=fs\n"
 
 #: main.c:743
 msgid "\t-v var=val\t\t--assign=var=val\n"
-msgstr "\t-v var=værdi\t\t--assign=var=værdi\n"
+msgstr "\t-v var=værdi\t\t--assign=var=værdi\n"
 
 #: main.c:744
 msgid "Short options:\t\tGNU long options: (extensions)\n"
@@ -1818,7 +1772,7 @@ msgstr ""
 "For at rapportere fejl kan du se punktet 'Bugs' i 'gawk.info', som er\n"
 "sektionen 'Reporting Problems and Bugs' i den trykte version.\n"
 "\n"
-"Rapportér kommentarer til oversættelsen til <address@hidden>.\n"
+"Rapportér kommentarer til oversættelsen til <address@hidden>.\n"
 
 #: main.c:782
 msgid ""
@@ -1826,8 +1780,8 @@ msgid ""
 "By default it reads standard input and writes standard output.\n"
 "\n"
 msgstr ""
-"gawk er et sprog til mønster-genkendelse og -behandling.\n"
-"Almindeligvis læser gawk fra standard ind og skriver til standard ud.\n"
+"gawk er et sprog til mønster-genkendelse og -behandling.\n"
+"Almindeligvis læser gawk fra standard ind og skriver til standard ud.\n"
 "\n"
 
 #: main.c:786
@@ -1851,12 +1805,11 @@ msgid ""
 "(at your option) any later version.\n"
 "\n"
 msgstr ""
-"Copyright © 1989, 1991-%d Free Software Foundation.\n"
+"Copyright © 1989, 1991-%d Free Software Foundation.\n"
 "\n"
 "Dette program er frit programmel. Du kan distribuere det og/eller\n"
-"ændre det under betingelserne i GNU General Public License, offentliggjort\n"
-"af Free Software Foundation, enten version 3 af licensen, eller (hvis du "
-"vil)\n"
+"ændre det under betingelserne i GNU General Public License, offentliggjort\n"
+"af Free Software Foundation, enten version 3 af licensen, eller (hvis du 
vil)\n"
 "enhver senere version.\n"
 "\n"
 
@@ -1868,9 +1821,9 @@ msgid ""
 "GNU General Public License for more details.\n"
 "\n"
 msgstr ""
-"Dette program distribueres i håb om at det vil være nyttigt,\n"
-"men UDEN NOGEN SOM HELST GARANTI, også uden underforstået garanti\n"
-"om SALGBARHED eller EGNETHED FOR NOGET SPECIELT FORMÅL. Se GNU\n"
+"Dette program distribueres i håb om at det vil være nyttigt,\n"
+"men UDEN NOGEN SOM HELST GARANTI, også uden underforstået garanti\n"
+"om SALGBARHED eller EGNETHED FOR NOGET SPECIELT FORMÅL. Se GNU\n"
 "General Public License for yderligere information.\n"
 "\n"
 
@@ -1879,17 +1832,17 @@ msgid ""
 "You should have received a copy of the GNU General Public License\n"
 "along with this program. If not, see http://www.gnu.org/licenses/.\n";
 msgstr ""
-"Du bør have fået en kopi af GNU General Public License sammen\n"
-"med dette program. Hvis ikke, så se http://www.gnu.org/licenses/.\n";
+"Du bør have fået en kopi af GNU General Public License sammen\n"
+"med dette program. Hvis ikke, så se http://www.gnu.org/licenses/.\n";
 
 #: main.c:855
 msgid "-Ft does not set FS to tab in POSIX awk"
-msgstr "-Ft sætter ikke FS til tab i POSIX-awk"
+msgstr "-Ft sætter ikke FS til tab i POSIX-awk"
 
 #: main.c:1089
 #, c-format
 msgid "unknown value for field spec: %d\n"
-msgstr "ukendt værdi for felt-spec: %d\n"
+msgstr "ukendt værdi for felt-spec: %d\n"
 
 #: main.c:1170
 #, c-format
@@ -1897,7 +1850,7 @@ msgid ""
 "%s: `%s' argument to `-v' not in `var=value' form\n"
 "\n"
 msgstr ""
-"%s: '%s' argument til '-v' ikke på formen 'var=værdi'\n"
+"%s: '%s' argument til '-v' ikke på formen 'var=værdi'\n"
 "\n"
 
 #: main.c:1196
@@ -1911,14 +1864,14 @@ msgid "`%s' is not a variable name, looking for file 
`%s=%s'"
 msgstr "'%s' er ikke et variabelnavn, leder efter fil '%s=%s'"
 
 #: main.c:1203
-#, fuzzy, c-format
+#, c-format
 msgid "cannot use gawk builtin `%s' as variable name"
-msgstr "extension: kan ikke bruge gawk's indbyggede '%s' som funktionsnavn"
+msgstr "kan ikke bruge gawk's indbyggede '%s' som variabelnavn"
 
 #: main.c:1208
-#, fuzzy, c-format
+#, c-format
 msgid "cannot use function `%s' as variable name"
-msgstr "kan ikke bruge funktionsnavnet '%s' som variabel eller array"
+msgstr "kan ikke bruge funktion '%s' som variabelnavn"
 
 #: main.c:1261
 msgid "floating point exception"
@@ -1934,17 +1887,17 @@ msgstr "fatal fejl: intern fejl: segmentfejl"
 
 #: main.c:1295
 msgid "fatal error: internal error: stack overflow"
-msgstr "fatal fejl: intern fejl: stakoverløb"
+msgstr "fatal fejl: intern fejl: stakoverløb"
 
 #: main.c:1345
 #, c-format
 msgid "no pre-opened fd %d"
-msgstr "ingen fd %d åbnet i forvejen"
+msgstr "ingen fd %d åbnet i forvejen"
 
 #: main.c:1352
 #, c-format
 msgid "could not pre-open /dev/null for fd %d"
-msgstr "kunne ikke i forvejen åbne /dev/null for fd %d"
+msgstr "kunne ikke i forvejen åbne /dev/null for fd %d"
 
 #: main.c:1375 main.c:1384
 #, c-format
@@ -1962,12 +1915,12 @@ msgstr "fejl: "
 
 #: node.c:406
 msgid "backslash at end of string"
-msgstr "omvendt skråstreg i slutningen af strengen"
+msgstr "omvendt skråstreg i slutningen af strengen"
 
 #: node.c:517
 #, c-format
 msgid "old awk does not support the `\\%c' escape sequence"
-msgstr "gamle versioner af awk understøtter ikke '\\%c' undvigesekvens"
+msgstr "gamle versioner af awk understøtter ikke '\\%c' undvigesekvens"
 
 #: node.c:568
 msgid "POSIX does not allow `\\x' escapes"
@@ -1979,12 +1932,8 @@ msgstr "ingen heksadecimale cifre i 
'\\x'-kontrolsekvenser"
 
 #: node.c:596
 #, c-format
-msgid ""
-"hex escape \\x%.*s of %d characters probably not interpreted the way you "
-"expect"
-msgstr ""
-"den heksadecimale sekvens \\x%.*s på %d tegn nok ikke forstået som du "
-"forventer det"
+msgid "hex escape \\x%.*s of %d characters probably not interpreted the way 
you expect"
+msgstr "den heksadecimale sekvens \\x%.*s på %d tegn nok ikke forstået som du 
forventer det"
 
 #: node.c:611
 #, c-format
@@ -1992,27 +1941,23 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
 msgstr "kontrolsekvensen '\\%c' behandlet som kun '%c'"
 
 #: node.c:750
-msgid ""
-"Invalid multibyte data detected. There may be a mismatch between your data "
-"and your locale."
-msgstr ""
-"Ugyldigt multibyte data fundet. MÃ¥ske er der uoverensstemmelse mellem  dine "
-"data og dit locale."
+msgid "Invalid multibyte data detected. There may be a mismatch between your 
data and your locale."
+msgstr "Ugyldigt multibyte data fundet. Måske er der uoverensstemmelse mellem  
dine data og dit locale."
 
 #: posix/gawkmisc.c:176
 #, c-format
 msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr "%s %s '%s': kunne ikke få fat på fd flag: (fcntl F_GETFD: %s)"
+msgstr "%s %s '%s': kunne ikke få fat på fd flag: (fcntl F_GETFD: %s)"
 
 #: posix/gawkmisc.c:188
 #, c-format
 msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr "%s %s '%s': kunne ikke sætte luk-ved-exec (fcntl F_SETFD: %s)"
+msgstr "%s %s '%s': kunne ikke sætte luk-ved-exec (fcntl F_SETFD: %s)"
 
 #: profile.c:83
 #, c-format
 msgid "could not open `%s' for writing: %s"
-msgstr "kunne ikke åbne '%s' for skrivning: %s"
+msgstr "kunne ikke åbne '%s' for skrivning: %s"
 
 #: profile.c:85
 msgid "sending profile to standard error"
@@ -2061,14 +2006,14 @@ msgid "redir2str: unknown redirection type %d"
 msgstr "redir2str: uykendt omdirigeringstype %d"
 
 #: re.c:572
-#, fuzzy, c-format
+#, c-format
 msgid "range of the form `[%c-%c]' is locale dependent"
-msgstr "område på formen `[%c-%c]' er locale-afhængig"
+msgstr "område på formen `[%c-%c]' er locale-afhængig"
 
 #: re.c:599
 #, c-format
 msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr "regexp-komponent `%.*s' skulle nok være `[%.*s]'"
+msgstr "regexp-komponent `%.*s' skulle nok være `[%.*s]'"
 
 #: regcomp.c:132
 msgid "Success"
@@ -2080,7 +2025,7 @@ msgstr "Mislykkedes"
 
 #: regcomp.c:138
 msgid "Invalid regular expression"
-msgstr "Ugyldigt regulært udtryk"
+msgstr "Ugyldigt regulært udtryk"
 
 #: regcomp.c:141
 msgid "Invalid collation character"
@@ -2092,7 +2037,7 @@ msgstr "Ugyldigt tegnklassenavn"
 
 #: regcomp.c:147
 msgid "Trailing backslash"
-msgstr "Efterfølgende omvendt skråstreg"
+msgstr "Efterfølgende omvendt skråstreg"
 
 #: regcomp.c:150
 msgid "Invalid back reference"
@@ -2124,15 +2069,15 @@ msgstr "Hukommelsen opbrugt"
 
 #: regcomp.c:171
 msgid "Invalid preceding regular expression"
-msgstr "Ugyldigt foregående regulært udtryk"
+msgstr "Ugyldigt foregående regulært udtryk"
 
 #: regcomp.c:174
 msgid "Premature end of regular expression"
-msgstr "For tidligt slut på regulært udtryk"
+msgstr "For tidligt slut på regulært udtryk"
 
 #: regcomp.c:177
 msgid "Regular expression too big"
-msgstr "Regulært udtryk for stort"
+msgstr "Regulært udtryk for stort"
 
 #: regcomp.c:180
 msgid "Unmatched ) or \\)"
@@ -2140,31 +2085,31 @@ msgstr "Ubalanceret ) eller \\)"
 
 #: regcomp.c:701
 msgid "No previous regular expression"
-msgstr "Intet foregående regulært udtryk"
+msgstr "Intet foregående regulært udtryk"
 
 #~ msgid "assignment is not allowed to result of builtin function"
 #~ msgstr "tildeling er ikke tilladt til resultatet fra en indbygget funktion"
 
 #~ msgid "attempt to use array in a scalar context"
-#~ msgstr "forsøg på at bruge array i skalarsammenhæng"
+#~ msgstr "forsøg på at bruge array i skalarsammenhæng"
 
 #~ msgid "statement may have no effect"
-#~ msgstr "kommandoen har måske ikke nogen effekt"
+#~ msgstr "kommandoen har måske ikke nogen effekt"
 
 #~ msgid "out of memory"
-#~ msgstr "slut på hukommelsen"
+#~ msgstr "slut på hukommelsen"
 
 #~ msgid "attempt to use scalar `%s' as array"
-#~ msgstr "forsøg på at bruge skalaren '%s' som array"
+#~ msgstr "forsøg på at bruge skalaren '%s' som array"
 
 #~ msgid "attempt to use array `%s' in scalar context"
-#~ msgstr "forsøg på at bruge array '%s' i skalarsammenhæng"
+#~ msgstr "forsøg på at bruge array '%s' i skalarsammenhæng"
 
 #~ msgid "call of `length' without parentheses is deprecated by POSIX"
-#~ msgstr "kald af 'length' uden parenteser er forældet ifølge POSIX"
+#~ msgstr "kald af 'length' uden parenteser er forældet ifølge POSIX"
 
 #~ msgid "division by zero attempted in `/'"
-#~ msgstr "forsøgte at dividere med nul i '/'"
+#~ msgstr "forsøgte at dividere med nul i '/'"
 
 #~ msgid "length: untyped parameter argument will be forced to scalar"
 #~ msgstr "length: parameter uden type vil blive brugt som skalar"
@@ -2173,10 +2118,10 @@ msgstr "Intet foregående regulært udtryk"
 #~ msgstr "length: argument uden type vil blive brugt som skalar"
 
 #~ msgid "`break' outside a loop is not portable"
-#~ msgstr "'break' uden for en løkke er ikke portabelt"
+#~ msgstr "'break' uden for en løkke er ikke portabelt"
 
 #~ msgid "`continue' outside a loop is not portable"
-#~ msgstr "'continue' uden for en løkke er ikke portabelt"
+#~ msgstr "'continue' uden for en løkke er ikke portabelt"
 
 #~ msgid "`next' cannot be called from a BEGIN rule"
 #~ msgstr "'next' kan ikke kaldes fra en BEGIN-regel"
@@ -2184,11 +2129,8 @@ msgstr "Intet foregående regulært udtryk"
 #~ msgid "`nextfile' cannot be called from a BEGIN rule"
 #~ msgstr "'nextfile' kan ikke kaldes fra en BEGIN-regel"
 
-#~ msgid ""
-#~ "concatenation: side effects in one expression have changed the length of "
-#~ "another!"
-#~ msgstr ""
-#~ "konkatenering: sideeffekter i et udtryk har ændret længden af et andet!"
+#~ msgid "concatenation: side effects in one expression have changed the 
length of another!"
+#~ msgstr "konkatenering: sideeffekter i et udtryk har ændret længden af et 
andet!"
 
 #~ msgid "illegal type (%s) in tree_eval"
 #~ msgstr "ugyldig type (%s) i tree_eval"
@@ -2197,16 +2139,16 @@ msgstr "Intet foregående regulært udtryk"
 #~ msgstr "\t# -- main --\n"
 
 #~ msgid "invalid tree type %s in redirect()"
-#~ msgstr "ugyldig trætype %s i redirect()"
+#~ msgstr "ugyldig trætype %s i redirect()"
 
 #~ msgid "/inet/raw client not ready yet, sorry"
-#~ msgstr "/inet/raw-klient er desværre ikke klar endnu"
+#~ msgstr "/inet/raw-klient er desværre ikke klar endnu"
 
 #~ msgid "only root may use `/inet/raw'."
 #~ msgstr "kun root kan bruge '/inet/raw'."
 
 #~ msgid "/inet/raw server not ready yet, sorry"
-#~ msgstr "/inet/raw-server er desværre ikke klar endnu"
+#~ msgstr "/inet/raw-server er desværre ikke klar endnu"
 
 #~ msgid "file `%s' is a directory"
 #~ msgstr "filen '%s' er et katalog"
@@ -2218,7 +2160,7 @@ msgstr "Intet foregående regulært udtryk"
 #~ msgstr "brug 'PROCINFO[...]' i stedet for '/dev/user'"
 
 #~ msgid "\t-m[fr] val\n"
-#~ msgstr "\t-m[fr] værdi\n"
+#~ msgstr "\t-m[fr] værdi\n"
 
 #~ msgid "\t-W compat\t\t--compat\n"
 #~ msgstr "\t-W compat\t\t--compat\n"
@@ -2236,7 +2178,7 @@ msgstr "Intet foregående regulært udtryk"
 #~ msgstr "# behandlet internt som 'delete'"
 
 #~ msgid "# this is a dynamically loaded extension function"
-#~ msgstr "# dette er en dynamisk indlæst udvidelsesfunktion"
+#~ msgstr "# dette er en dynamisk indlæst udvidelsesfunktion"
 
 #~ msgid ""
 #~ "\t# BEGIN block(s)\n"

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog |    4 +
 dfa.c     |  342 +++++++++++++++++++++++------------------
 po/da.po  |  516 +++++++++++++++++++++++++++----------------------------------
 3 files changed, 425 insertions(+), 437 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]