]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20080918 snapshot
authorChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:29:06 +0000 (09:29 -0500)
committerChet Ramey <chet.ramey@case.edu>
Wed, 7 Dec 2011 14:29:06 +0000 (09:29 -0500)
37 files changed:
CWRU/CWRU.chlog
CWRU/CWRU.chlog~
builtins/declare.def
builtins/declare.def~
builtins/evalstring.c
examples/loadables/cat.c
examples/loadables/copyright-fullcomment [new file with mode: 0644]
examples/loadables/dirname.c
examples/loadables/finfo.c
examples/loadables/head.c
examples/loadables/id.c
examples/loadables/ln.c
examples/loadables/logname.c
examples/loadables/mkdir.c
examples/loadables/necho.c
examples/loadables/pathchk.c
examples/loadables/print.c
examples/loadables/printenv.c
examples/loadables/push.c
examples/loadables/realpath.c
examples/loadables/rmdir.c
examples/loadables/sleep.c
examples/loadables/strftime.c
examples/loadables/sync.c
examples/loadables/tee.c
examples/loadables/truefalse.c
examples/loadables/tty.c
examples/loadables/uname.c
examples/loadables/unlink.c
examples/loadables/whoami.c
execute_cmd.c
execute_cmd.c~
jobs.c
jobs.c~
po/de.po
po/sv.po
sig.c

index efc4df7af10e5f02f655c7111e4c152e1ce4c27b..d852bd2dc6a632b64d9a384508a890943b38e671 100644 (file)
@@ -6902,3 +6902,35 @@ variables.c
          a value, whether or not a variable with the same name existed in a
          previous context.  This is consistent with ksh93.  Fix from
          <neil@s-z.org>
+
+                                  9/16
+                                  ----
+execute_cmd.c
+       - add call to CHECK_TERMSIG in shell_execve after the call to execve
+         returns.  Recommended by Roman Rakus <rrakus@redhat.com>
+       - add QUIT check in execute_connection after executing first command
+         in a `&' connection
+
+                                  9/22
+                                  ----
+execute_cmd.c
+       - new semaphore variable, executing_list, incremented every time a
+         list (command1;command2 or command1 || command2 or command1 &&
+         command2) is executed; used as sentinel for rest of shell
+
+sig.c,builtins/evalstring.c
+       - set executing_list to 0 when throwing execution back to top level;
+         make sure to unwind-protect it in appropriate places
+
+jobs.c
+       - if a pipeline is killed by SIGINT while executing a list (when
+         executing_list is non-zero), make sure the shell acts as if an
+         interrupt occurred.  The behavior is dependent on the shell
+         compatibility level being > 32 (bash-4.0 and above)
+
+                                  9/24
+                                  ----
+builtins/declare.def
+       - make `declare [option] var' (and the `typeset' equivalent) create
+         invisible variables, instead of assigning the null string to a
+         visible variable.
index 112cf964d3c8285afe4f0ce319687a4f68b11af2..170e30ce468c2d381db24ab54f11d5d7a55352b2 100644 (file)
@@ -6896,3 +6896,41 @@ builtins/return.def
 builtins/bind.def
        - add an error message when bind is used without line editing active,
          instead of just returning an error status
+
+variables.c
+       - make sure make_local_variable never creates visible variables with
+         a value, whether or not a variable with the same name existed in a
+         previous context.  This is consistent with ksh93.  Fix from
+         <neil@s-z.org>
+
+                                  9/16
+                                  ----
+execute_cmd.c
+       - add call to CHECK_TERMSIG in shell_execve after the call to execve
+         returns.  Recommended by Roman Rakus <rrakus@redhat.com>
+       - add QUIT check in execute_connection after executing first command
+         in a `&' connection
+
+                                  9/22
+                                  ----
+execute_cmd.c
+       - new semaphore variable, executing_list, incremented every time a
+         list (command1;command2 or command1 || command2 or command1 &&
+         command2) is executed; used as sentinel for rest of shell
+
+sig.c,builtins/evalstring.c
+       - set executing_list to 0 when throwing execution back to top level;
+         make sure to unwind-protect it in appropriate places
+
+jobs.c
+       - if a pipeline is killed by SIGINT while executing a list (when
+         executing_list is non-zero), make sure the shell acts as if an
+         interrupt occurred.  The behavior is dependent on the shell
+         compatibility level being > 32 (bash-4.0 and above)
+
+                                  9/24
+                                  ----
+builtins/declare.def
+       - make `declare [option] var' (and the `typeset' equivalent) create
+         invisible variables, instead of assigning the null string to a
+         visible variable
index 1aeb313cf83a7a9c33fd4df79feaba3a3e43079e..569a68a12521b6f9bd8a91e183d4faf3c7c7c7ac 100644 (file)
@@ -414,7 +414,14 @@ declare_internal (list, local_var)
                var = make_new_array_variable (name);
              else
 #endif
-             var = bind_variable (name, "", 0);
+
+             if (offset)
+               var = bind_variable (name, "", 0);
+             else
+               {
+                 var = bind_variable (name, (char *)NULL, 0);
+                 VSETATTR (var, att_invisible);
+               }
            }
 
          /* Cannot use declare +r to turn off readonly attribute. */ 
index e129ae521b909e976c1fc24574c615af33a6b1f7..52fa829cb42c806726dd2a8ff8353af437a0030c 100644 (file)
@@ -5,25 +5,24 @@ Copyright (C) 1987-2008 Free Software Foundation, Inc.
 
 This file is part of GNU Bash, the Bourne Again SHell.
 
-Bash is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
+Bash is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
-Bash is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-for more details.
+Bash is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License along
-with Bash; see the file COPYING.  If not, write to the Free Software
-Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+You should have received a copy of the GNU General Public License
+along with Bash.  If not, see <http://www.gnu.org/licenses/>.
 
 $PRODUCES declare.c
 
 $BUILTIN declare
 $FUNCTION declare_builtin
-$SHORT_DOC declare [-afFirtx] [-p] [name[=value] ...]
+$SHORT_DOC declare [-aAfFilrtux] [-p] [name[=value] ...]
 Set variable values and attributes.
 
 Declare variables and give them attributes.  If no NAMEs are given,
@@ -36,10 +35,13 @@ Options:
   -p   display the attributes and value of each NAME
 
 Options which set attributes:
-  -a   to make NAMEs arrays (if supported)
+  -a   to make NAMEs indexed arrays (if supported)
+  -A   to make NAMEs associative arrays (if supported)
   -i   to make NAMEs have the `integer' attribute
+  -l   to convert NAMEs to lower case on assignment
   -r   to make NAMEs readonly
   -t   to make NAMEs have the `trace' attribute
+  -u   to convert NAMEs to upper case on assignment
   -x   to make NAMEs export
 
 Using `+' instead of `-' turns off the given attribute.
@@ -56,7 +58,7 @@ $END
 
 $BUILTIN typeset
 $FUNCTION declare_builtin
-$SHORT_DOC typeset [-afFirtx] [-p] name[=value] ...
+$SHORT_DOC typeset [-aAfFilrtux] [-p] name[=value] ...
 Set variable values and attributes.
 
 Obsolete.  See `help declare'.
@@ -123,9 +125,9 @@ local_builtin (list)
 }
 
 #if defined (ARRAY_VARS)
-#  define DECLARE_OPTS "+afiprtxF"
+#  define DECLARE_OPTS "+acfilprtuxAF"
 #else
-#  define DECLARE_OPTS "+fiprtxF"
+#  define DECLARE_OPTS "+cfilprtuxF"
 #endif
 
 /* The workhorse function. */
@@ -134,7 +136,8 @@ declare_internal (list, local_var)
      register WORD_LIST *list;
      int local_var;
 {
-  int flags_on, flags_off, *flags, any_failed, assign_error, pflag, nodefs, opt;
+  int flags_on, flags_off, *flags;
+  int any_failed, assign_error, pflag, nodefs, opt;
   char *t, *subscript_start;
   SHELL_VAR *var;
   FUNCTION_DEF *shell_fn;
@@ -150,8 +153,19 @@ declare_internal (list, local_var)
        case 'a':
 #if defined (ARRAY_VARS)
          *flags |= att_array;
+         break;
+#else
+         builtin_usage ();
+         return (EX_USAGE);
 #endif
+       case 'A':
+#if defined (ARRAY_VARS)
+         *flags |= att_assoc;
          break;
+#else
+         builtin_usage ();
+         return (EX_USAGE);
+#endif
        case 'p':
          if (local_var == 0)
            pflag++;
@@ -176,6 +190,25 @@ declare_internal (list, local_var)
          *flags |= att_exported;
          array_needs_making = 1;
          break;
+#if defined (CASEMOD_ATTRS)
+#  if defined (CASEMOD_CAPCASE)
+        case 'c':
+         *flags |= att_capcase;
+         if (flags == &flags_on)
+           flags_off |= att_uppercase|att_lowercase;
+         break;
+#  endif
+       case 'l':
+         *flags |= att_lowercase;
+         if (flags == &flags_on)
+           flags_off |= att_capcase|att_uppercase;
+         break;
+       case 'u':
+         *flags |= att_uppercase;
+         if (flags == &flags_on)
+           flags_off |= att_capcase|att_lowercase;
+         break;
+#endif /* CASEMOD_ATTRS */
        default:
          builtin_usage ();
          return (EX_USAGE);
@@ -186,7 +219,7 @@ declare_internal (list, local_var)
 
   /* If there are no more arguments left, then we just want to show
      some variables. */
-  if (list == 0)       /* declare -[afFirtx] */
+  if (list == 0)       /* declare -[aAfFirtx] */
     {
       /* Show local variables defined at this context level if this is
         the `local' builtin. */
@@ -215,7 +248,7 @@ declare_internal (list, local_var)
       return (sh_chkwrite (EXECUTION_SUCCESS));
     }
 
-  if (pflag)   /* declare -p [-afFirtx] name [name...] */
+  if (pflag)   /* declare -p [-aAfFirtx] name [name...] */
     {
       for (any_failed = 0; list; list = list->next)
        {
@@ -232,7 +265,7 @@ declare_internal (list, local_var)
 #define NEXT_VARIABLE() free (name); list = list->next; continue
 
   /* There are arguments left, so we are making variables. */
-  while (list)         /* declare [-afFirx] name [name ...] */
+  while (list)         /* declare [-aAfFirx] name [name ...] */
     {
       char *value, *name;
       int offset, aflags;
@@ -244,7 +277,7 @@ declare_internal (list, local_var)
       offset = assignment (name, 0);
       aflags = 0;
 
-      if (offset)      /* declare [-afFirx] name=value */
+      if (offset)      /* declare [-aAfFirx] name=value */
        {
          name[offset] = '\0';
          value = name + offset + 1;
@@ -291,7 +324,9 @@ declare_internal (list, local_var)
       if (variable_context && ((flags_on & att_function) == 0))
        {
 #if defined (ARRAY_VARS)
-         if ((flags_on & att_array) || making_array_special)
+         if (flags_on & att_assoc)
+           var = make_local_assoc_variable (name);
+         else if ((flags_on & att_array) || making_array_special)
            var = make_local_array_variable (name);
          else
 #endif
@@ -364,7 +399,7 @@ declare_internal (list, local_var)
              NEXT_VARIABLE ();
            }
        }
-      else             /* declare -[airx] name [name...] */
+      else             /* declare -[aAirx] name [name...] */
        {
          /* Non-null if we just created or fetched a local variable. */
          if (var == 0)
@@ -373,11 +408,21 @@ declare_internal (list, local_var)
          if (var == 0)
            {
 #if defined (ARRAY_VARS)
-             if ((flags_on & att_array) || making_array_special)
+             if (flags_on & att_assoc)
+               var = make_new_assoc_variable (name);
+             else if ((flags_on & att_array) || making_array_special)
                var = make_new_array_variable (name);
              else
 #endif
-             var = bind_variable (name, "", 0);
+
+             if (offset)
+               var = bind_variable (name, "", 0);
+             else
+               {
+                 var = bind_variable (name, (char *)NULL, 0);
+                 VSETATTR (var, att_invisible);
+               }
+#endif
            }
 
          /* Cannot use declare +r to turn off readonly attribute. */ 
@@ -399,30 +444,48 @@ declare_internal (list, local_var)
            }
 
 #if defined (ARRAY_VARS)
-         if ((making_array_special || (flags_on & att_array) || array_p (var)) && offset)
+         if ((making_array_special || (flags_on & (att_array|att_assoc)) || array_p (var) || assoc_p (var)) && offset)
            {
              int vlen;
              vlen = STRLEN (value);
-#if 0
-             if (value[0] == '(' && strchr (value, ')'))
-#else
+
              if (value[0] == '(' && value[vlen-1] == ')')
-#endif
                compound_array_assign = 1;
              else
                simple_array_assign = 1;
            }
 
-         /* Cannot use declare +a name to remove an array variable. */
-         if ((flags_off & att_array) && array_p (var))
+         /* Cannot use declare +a name or declare +A name to remove an
+            array variable. */
+         if (((flags_off & att_array) && array_p (var)) || ((flags_off & att_assoc) && assoc_p (var)))
            {
              builtin_error (_("%s: cannot destroy array variables in this way"), name);
              any_failed++;
              NEXT_VARIABLE ();
            }
 
-         /* declare -a name makes name an array variable. */
-         if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0)
+         if ((flags_on & att_array) && assoc_p (var))
+           {
+             builtin_error (_("%s: cannot convert associative to indexed array"), name);
+             any_failed++;
+             NEXT_VARIABLE ();
+           }
+         if ((flags_on & att_assoc) && array_p (var))
+           {
+             builtin_error (_("%s: cannot convert indexed to associative array"), name);
+             any_failed++;
+             NEXT_VARIABLE ();
+           }
+
+         /* declare -A name[[n]] makes name an associative array variable. */
+         if (flags_on & att_assoc)
+           {
+             if (assoc_p (var) == 0)
+               var = convert_var_to_assoc (var);
+           }
+         /* declare -a name[[n]] or declare name[n] makes name an indexed
+            array variable. */
+         else if ((making_array_special || (flags_on & att_array)) && array_p (var) == 0)
            var = convert_var_to_array (var);
 #endif /* ARRAY_VARS */
 
index 37fac8947cf47e0477e9fb2813d62dc1219c878e..657c98d132b1481a305c4899931b0514f1f25464 100644 (file)
@@ -64,6 +64,7 @@ extern int current_token, shell_eof_token;
 extern int last_command_exit_value;
 extern int running_trap;
 extern int loop_level;
+extern int executing_list;
 extern int posixly_correct;
 
 int parse_and_execute_level = 0;
@@ -110,6 +111,7 @@ parse_prologue (string, flags, tag)
   unwind_protect_int (indirection_level);
   unwind_protect_int (line_number);
   unwind_protect_int (loop_level);
+  unwind_protect_int (executing_list);
   if (flags & (SEVAL_NONINT|SEVAL_INTERACT))
     unwind_protect_int (interactive);
 
index 2a580951059d2f7a8f3fdbaddaef0b5c2d02f037..8b0fd1fe2a4a522ed0825eddb7390bd0cff8b30f 100644 (file)
@@ -4,6 +4,24 @@
  * no options - the way cat was intended
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <fcntl.h>
 #include <errno.h>
 
diff --git a/examples/loadables/copyright-fullcomment b/examples/loadables/copyright-fullcomment
new file mode 100644 (file)
index 0000000..ef0eb64
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
index 3a7c4b3bf70e89e80bbae5758693c204fd102925..423abfdf3fb13f19c679e2e95a9bf43d0f43bb16 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #if defined (HAVE_UNISTD_H)
index 11b7575f1dd2bd685cbcdf87f9915d13a93ceaa9..778b02bd0d80891b4772fc5366a961a895623e37 100644 (file)
@@ -1,5 +1,8 @@
 /*
  * finfo - print file info
+ *
+ * Chet Ramey
+ * chet@po.cwru.edu
  */
 
 #ifdef HAVE_CONFIG_H
index 1eb28ee3c5c24fb192225aca0b80b872e0ddea7d..3a9e21a53331d9779ceca90895c10dba13daab9c 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include "bashtypes.h"
index 2d958a79c7418b0dfee8046ff60551018b9ea1e5..2fb5fde1a4a10b402c35e03bf127dfbfe70d81ef 100644 (file)
@@ -9,6 +9,24 @@
  *     uid=xxx(chet) gid=xx groups=aa(aname), bb(bname), cc(cname)
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 #include <stdio.h>
 #include "bashtypes.h"
index b6293749fbe51500f4eeb2856a1a880fcf844edd..79f80b9e42085e37e6fd59554c0002955d5c0e7f 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include "bashtypes.h"
index c3cfbbe09103ddb83faed8cd3bc99833f64d7fea..2953516cd1daab4a6ae4d6e93a6061c68ca8111f 100644 (file)
@@ -1,5 +1,23 @@
 /* logname - print login name of current user */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #if defined (HAVE_UNISTD_H)
index 5518fb9a07bc6dc0079dfa4c9e198fbb4cc234d8..e34e1101e1b7ec79a281584d9f8e567930a6e182 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #include "bashtypes.h"
index 4bd9009755b19cb25ec54f6c606789211252368f..09ae26978edd099d8c2f275d9eb5db9baa7f3260 100644 (file)
@@ -3,6 +3,24 @@
 /* Sample builtin to be dynamically loaded with enable -f and replace an
    existing builtin. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <stdio.h>
 #include "builtins.h"
 #include "shell.h"
index 68534e9dcd0779355d27b443944f5d54d0969a3b..e19aec220ece07c8e53d29993f333c0a8a1b34bd 100644 (file)
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #include <sys/types.h>
index 0e48230ccbe85ba4721aebcccf37d87f4a8c6bd4..718ee309c9ce979ab6c2404a3e63c862b3d0fe2a 100644 (file)
@@ -2,6 +2,24 @@
  * print -- loadable ksh-93 style print builtin
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
index d9567e14f7d9dda332847fdb80f84e096ea908b8..511fe3ce59e70326ccebceb23c08fd0acc645e33 100644 (file)
@@ -5,6 +5,24 @@
  *
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 #include <stdio.h>
 
index f7aa86624a38e737deee18343d7249f7ad4edbb4..b51086f6d4f32e5d00c5c48a96f2f8ad4aab6e8c 100644 (file)
@@ -3,6 +3,24 @@
  *
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 #include <stdio.h>
 #include <errno.h>
index 3a4e30d8ac9ea8ab69bee4a6103caba15e59f4ac..ccebb3ff1035013c97601b20bc3679e113b00bc8 100644 (file)
  * chet@po.cwru.edu
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include <sys/types.h>
index 5ffc46841e32c96bede756d75f86fd977f5bb874..451d80c42015f38afd313133afba58ae5ea4ff97 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include <stdio.h>
index e0712b2c53b993afe933c6ab55a77c248438bf1c..3f3e9515de2545b4ef59c7b5c6a8a1f7c3c6e5a0 100644 (file)
@@ -3,6 +3,25 @@
  *
  * usage: sleep seconds[.fraction]
  */
+
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include "bashtypes.h"
index 576d4bb33bf4580c3d25018bef7de848bb2b0b26..c02f3a78e71559e21aefdbb39ad5a33a57c87a7d 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #if defined (HAVE_UNISTD_H)
index 1231e7adab92bc32a8914f957e91b23f5936cf94..ec1a237c5b05e1a5b4701c0d39adcdd0e8dc3d43 100644 (file)
@@ -1,5 +1,23 @@
 /* sync - sync the disks by forcing pending filesystem writes to complete */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #ifdef HAVE_UNISTD_H
index 1ea0a571735d8031f1f2365e8a30b88d357f9652..18cf89f4d8ce009a7f726b35dc0f4334382f6c3f 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include "bashtypes.h"
index 9ba482a4f5c66f413ad05e1c7115fa30d6a2b57c..4dcbebad9160d4bfdd26d748edb452f66d69916c 100644 (file)
@@ -1,4 +1,23 @@
 /* true and false builtins */
+
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #include "bashtypes.h"
index 7f1360655b5503349496f685775baeebcb49ce40..8e6d56c8f937005cbbd4beb4eb5afbbda03e6274 100644 (file)
@@ -2,6 +2,24 @@
 
 /* See Makefile for compilation details. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #include <stdio.h>
index 2b817f5ca258f1783da408345ac181171fe929ba..06eb7125f92872cc3c157989b230b4f88af65b42 100644 (file)
@@ -5,6 +5,24 @@
  *
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 #include <stdio.h>
 
index 2180049ad546170a86fd1607227c390fc4104591..91ef3d1373601876a6b506e4bb319bea78ce0e0c 100644 (file)
@@ -3,6 +3,24 @@
 /* Should only be used to remove directories by a superuser prepared to let
    fsck clean up the file system. */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 
 #ifdef HAVE_UNISTD_H
index 4c9d5bb50f0aadf8ab8bee8e49dcc4d0f19dfff5..25b20370674389d08d598728345a281913fe9e30 100644 (file)
@@ -2,6 +2,24 @@
  * whoami - print out username of current user
  */
 
+/*
+   Copyright (C) 1999-2008 Free Software Foundation, Inc.
+
+   This file is part of GNU Bash.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include <config.h>
 #include <stdio.h>
 
index faf62482ffa1af7e1a29449d3639f977bd4403f2..41bee8d083af146158e3ec2abcfb9b86197d0270 100644 (file)
@@ -230,6 +230,9 @@ REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
    currently executing (e.g. `eval echo a' would have it set to 2). */
 int executing_builtin = 0;
 
+/* Non-zero if we are executing a command list (a;b;c, etc.) */
+int executing_list = 0;
+
 /* Non-zero if we have just forked and are currently running in a subshell
    environment. */
 int subshell_environment;
@@ -2052,6 +2055,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
        tc->flags |= CMD_STDIN_REDIR;
 
       exec_result = execute_command_internal (tc, 1, pipe_in, pipe_out, fds_to_close);
+      QUIT;
 
       if (tc->flags & CMD_STDIN_REDIR)
        tc->flags &= ~CMD_STDIN_REDIR;
@@ -2076,12 +2080,14 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
          if (command->value.Connection->second)
            command->value.Connection->second->flags |= CMD_IGNORE_RETURN;
        }
+      executing_list++;
       QUIT;
       execute_command (command->value.Connection->first);
       QUIT;
       exec_result = execute_command_internal (command->value.Connection->second,
                                      asynchronous, pipe_in, pipe_out,
                                      fds_to_close);
+      executing_list--;
       break;
 
     case '|':
@@ -2107,6 +2113,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
         and the connector is OR_OR, then execute the second command,
         otherwise return. */
 
+      executing_list++;
       if (command->value.Connection->first)
        command->value.Connection->first->flags |= CMD_IGNORE_RETURN;
 
@@ -2122,6 +2129,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
 
          exec_result = execute_command (command->value.Connection->second);
        }
+      executing_list--;
       break;
 
     default:
@@ -4502,6 +4510,8 @@ initialize_subshell ()
   /* We're no longer inside a shell function. */
   variable_context = return_catch_flag = 0;
 
+  executing_list = 0;          /* XXX */
+
   /* If we're not interactive, close the file descriptor from which we're
      reading the current shell script. */
   if (interactive_shell == 0)
@@ -4543,6 +4553,7 @@ shell_execve (command, args, env)
   SETOSTYPE (0);               /* Some systems use for USG/POSIX semantics */
   execve (command, args, env);
   i = errno;                   /* error from execve() */
+  CHECK_TERMSIG;
   SETOSTYPE (1);
 
   /* If we get to this point, then start checking out the file.
index 9aa469ce467d7583e9b5647c0a27ac2e491323c4..634c86e8eb1350ae9d6bf583dd4aff02a1fe7bef 100644 (file)
@@ -4,19 +4,20 @@
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
-   Bash is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   Bash is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
 
-   Bash is distributed in the hope that it will be useful, but WITHOUT
-   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-   License for more details.
+   Bash is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with Bash; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+   along with Bash.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 #include "config.h"
 
 #if !defined (__GNUC__) && !defined (HAVE_ALLOCA_H) && defined (_AIX)
@@ -229,6 +230,9 @@ REDIRECT *exec_redirection_undo_list = (REDIRECT *)NULL;
    currently executing (e.g. `eval echo a' would have it set to 2). */
 int executing_builtin = 0;
 
+/* Non-zero if we are executing a command list (a;b;c, etc.) */
+int executing_list = 0;
+
 /* Non-zero if we have just forked and are currently running in a subshell
    environment. */
 int subshell_environment;
@@ -1312,7 +1316,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
   do_piping (pipe_in, pipe_out);
 
 #if defined (COPROCESS_SUPPORT)
-  coproc_close (&sh_coproc);
+  coproc_closeall ();
 #endif
 
   /* If this is a user subshell, set a flag if stdin was redirected.
@@ -1404,10 +1408,183 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close)
 }
 
 #if defined (COPROCESS_SUPPORT)
+#define COPROC_MAX     16
+
+typedef struct cpelement
+  {
+    struct cpelement *next;
+    struct coproc *coproc;
+  }
+cpelement_t;
+    
+typedef struct cplist
+  {
+    struct cpelement *head;
+    struct cpelement *tail;
+    int ncoproc;
+  }
+cplist_t;
+
+static struct cpelement *cpe_alloc __P((struct coproc *));
+static void cpe_dispose __P((struct cpelement *));
+static struct cpelement *cpl_add __P((struct coproc *));
+static struct cpelement *cpl_delete __P((pid_t));
+static void cpl_flush __P((void));
+static struct cpelement *cpl_search __P((pid_t));
+static struct cpelement *cpl_searchbyname __P((char *));
+static void cpl_prune __P((void));
+
 Coproc sh_coproc = { 0, NO_PID, -1, -1, 0, 0 };
 
+cplist_t coproc_list = {0, 0, 0};
+
+/* Functions to manage the list of exited background pids whose status has
+   been saved. */
+
+static struct cpelement *
+cpe_alloc (cp)
+     Coproc *cp;
+{
+  struct cpelement *cpe;
+
+  cpe = (struct cpelement *)xmalloc (sizeof (struct cpelement));
+  cpe->coproc = cp;
+  cpe->next = (struct cpelement *)0;
+  return cpe;
+}
+
+static void
+cpe_dispose (cpe)
+      struct cpelement *cpe;
+{
+  free (cpe);
+}
+
+static struct cpelement *
+cpl_add (cp)
+     Coproc *cp;
+{
+  struct cpelement *cpe;
+
+  cpe = cpe_alloc (cp);
+
+  if (coproc_list.head == 0)
+    {
+      coproc_list.head = coproc_list.tail = cpe;
+      coproc_list.ncoproc = 0;                 /* just to make sure */
+    }
+  else
+    {
+      coproc_list.tail->next = cpe;
+      coproc_list.tail = cpe;
+    }
+  coproc_list.ncoproc++;
+
+  return cpe;
+}
+
+static struct cpelement *
+cpl_delete (pid)
+     pid_t pid;
+{
+  struct cpelement *prev, *p;
+
+  for (prev = p = coproc_list.head; p; prev = p, p = p->next)
+    if (p->coproc->c_pid == pid)
+      {
+        prev->next = p->next;  /* remove from list */
+        break;
+      }
+
+  if (p == 0)
+    return 0;          /* not found */
+
+#if defined (DEBUG)
+  itrace("cpl_delete: deleting %d", pid);
+#endif
+
+  /* Housekeeping in the border cases. */
+  if (p == coproc_list.head)
+    coproc_list.head = coproc_list.head->next;
+  else if (p == coproc_list.tail)
+    coproc_list.tail = prev;
+
+  coproc_list.ncoproc--;
+  if (coproc_list.ncoproc == 0)
+    coproc_list.head = coproc_list.tail = 0;
+  else if (coproc_list.ncoproc == 1)
+    coproc_list.tail = coproc_list.head;               /* just to make sure */
+
+  return (p);
+}
+
+/* Clear out the list of saved statuses */
+static void
+cpl_flush ()
+{
+  struct cpelement *cpe, *p;
+
+  for (cpe = coproc_list.head; cpe; )
+    {
+      p = cpe;
+      cpe = cpe->next;
+
+      coproc_dispose (p->coproc);
+      cpe_dispose (p);
+    }
+
+  coproc_list.head = coproc_list.tail = 0;
+  coproc_list.ncoproc = 0;
+}
+
+/* Search for PID in the list of coprocs; return the cpelement struct if
+   found.  If not found, return NULL. */
+static struct cpelement *
+cpl_search (pid)
+     pid_t pid;
+{
+  struct cpelement *cp;
+
+  for (cp = coproc_list.head ; cp; cp = cp->next)
+    if (cp->coproc->c_pid == pid)
+      return cp;
+  return (struct cpelement *)NULL;
+}
+
+/* Search for the coproc named NAME in the list of coprocs; return the
+   cpelement struct if found.  If not found, return NULL. */
+static struct cpelement *
+cpl_searchbyname (name)
+     char *name;
+{
+  struct cpelement *cp;
+
+  for (cp = coproc_list.head ; cp; cp = cp->next)
+    if (STREQ (cp->coproc->c_name, name))
+      return cp;
+  return (struct cpelement *)NULL;
+}
+
+#if 0
+static void
+cpl_prune ()
+{
+  struct cpelement *cp;
+
+  while (coproc_list.head && coproc_list.ncoproc > COPROC_MAX)
+    {
+      cp = coproc_list.head;
+      coproc_list.head = coproc_list.head->next;
+      coproc_dispose (cp->coproc);
+      cpe_dispose (cp);
+      coproc_list.ncoproc--;
+    }
+}
+#endif
+
 /* These currently use a single global "shell coproc" but are written in a
-   way to not preclude additional coprocs later */
+   way to not preclude additional coprocs later (using the list management
+   package above). */
 
 struct coproc *
 getcoprocbypid (pid)
@@ -1441,7 +1618,7 @@ coproc_alloc (name, pid)
 {
   struct coproc *cp;
 
-  cp = &sh_coproc;
+  cp = &sh_coproc;             /* XXX */
   coproc_init (cp);
 
   cp->c_name = savestring (name);
@@ -1463,6 +1640,13 @@ coproc_dispose (cp)
   coproc_init (cp);
 }
 
+/* Placeholder for now. */
+void
+coproc_flush ()
+{
+  coproc_dispose (&sh_coproc);
+}
+
 void
 coproc_close (cp)
      struct coproc *cp;
@@ -1480,6 +1664,12 @@ coproc_close (cp)
   cp->c_rsave = cp->c_wsave = -1;
 }
 
+void
+coproc_closeall ()
+{
+  coproc_close (&sh_coproc);
+}
+
 void
 coproc_rclose (cp, fd)
      struct coproc *cp;
@@ -1505,7 +1695,7 @@ coproc_wclose (cp, fd)
 }
 
 void
-coproc_fdchk (cp, fd)
+coproc_checkfd (cp, fd)
      struct coproc *cp;
      int fd;
 {
@@ -1520,6 +1710,13 @@ coproc_fdchk (cp, fd)
     coproc_setvars (cp);
 }
 
+void
+coproc_fdchk (fd)
+     int fd;
+{
+  coproc_checkfd (&sh_coproc, fd);
+}
+
 void
 coproc_fdclose (cp, fd)
      struct coproc *cp;
@@ -1530,7 +1727,6 @@ coproc_fdclose (cp, fd)
   coproc_setvars (cp);
 }
 
-
 void
 coproc_fdsave (cp)
      struct coproc *cp;
@@ -1554,6 +1750,10 @@ coproc_pidchk (pid)
   struct coproc *cp;
 
   cp = getcoprocbypid (pid);
+#if 0
+  if (cp)
+    itrace("coproc_pidchk: pid %d has died", pid);
+#endif
   if (cp)
     coproc_dispose (cp);
 }
@@ -1649,6 +1849,7 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
   Coproc *cp;
   char *tcmd;
 
+  /* XXX -- will require changes to handle multiple coprocs */
   if (sh_coproc.c_pid != NO_PID)
     {
 #if 0
@@ -1687,7 +1888,7 @@ execute_coproc (command, pipe_in, pipe_out, fds_to_close)
 
   coproc_setvars (cp);
 
-#if defined (DEBUG)
+#if 0
   itrace ("execute_coproc: [%d] %s", coproc_pid, the_printed_command);
 #endif
 
@@ -1854,6 +2055,7 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
        tc->flags |= CMD_STDIN_REDIR;
 
       exec_result = execute_command_internal (tc, 1, pipe_in, pipe_out, fds_to_close);
+      QUIT;
 
       if (tc->flags & CMD_STDIN_REDIR)
        tc->flags &= ~CMD_STDIN_REDIR;
@@ -1878,12 +2080,14 @@ execute_connection (command, asynchronous, pipe_in, pipe_out, fds_to_close)
          if (command->value.Connection->second)
            command->value.Connection->second->flags |= CMD_IGNORE_RETURN;
        }
+      executing_list++;
       QUIT;
       execute_command (command->value.Connection->first);
       QUIT;
       exec_result = execute_command_internal (command->value.Connection->second,
                                      asynchronous, pipe_in, pipe_out,
                                      fds_to_close);
+      executing_list--;
       break;
 
     case '|':
@@ -3014,7 +3218,7 @@ execute_null_command (redirects, pipe_in, pipe_out, async)
          do_piping (pipe_in, pipe_out);
 
 #if defined (COPROCESS_SUPPORT)
-         coproc_close (&sh_coproc);
+         coproc_closeall ();
 #endif
 
          subshell_environment = 0;
@@ -3220,7 +3424,7 @@ execute_simple_command (simple_command, pipe_in, pipe_out, async, fds_to_close)
          do_piping (pipe_in, pipe_out);
          pipe_in = pipe_out = NO_PIPE;
 #if defined (COPROCESS_SUPPORT)
-         coproc_close (&sh_coproc);
+         coproc_closeall ();
 #endif
 
          last_asynchronous_pid = old_last_async_pid;
@@ -4304,6 +4508,8 @@ initialize_subshell ()
   /* We're no longer inside a shell function. */
   variable_context = return_catch_flag = 0;
 
+  executing_list = 0;          /* XXX */
+
   /* If we're not interactive, close the file descriptor from which we're
      reading the current shell script. */
   if (interactive_shell == 0)
@@ -4345,6 +4551,7 @@ shell_execve (command, args, env)
   SETOSTYPE (0);               /* Some systems use for USG/POSIX semantics */
   execve (command, args, env);
   i = errno;                   /* error from execve() */
+  CHECK_TERMSIG;
   SETOSTYPE (1);
 
   /* If we get to this point, then start checking out the file.
diff --git a/jobs.c b/jobs.c
index 4a5a5acf33679c56a26b07e733b1c4b25893cee1..092dcb987230f616043310d9dd7fc743968fb1e4 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -145,6 +145,7 @@ extern int subshell_environment, line_number;
 extern int posixly_correct, shell_level;
 extern int last_command_exit_value, last_command_exit_signal;
 extern int loop_level, breaking;
+extern int executing_list;
 extern int sourcelevel;
 extern int running_trap;
 extern sh_builtin_func_t *this_shell_builtin;
@@ -2525,7 +2526,7 @@ if (job == NO_JOB)
                 or until loop, act as if the shell received SIGINT as
                 well, so the loop can be broken.  This doesn't call the
                 SIGINT signal handler; maybe it should. */
-             if (signal_is_trapped (SIGINT) == 0 && loop_level)
+             if (signal_is_trapped (SIGINT) == 0 && (loop_level || (shell_compatibility_level > 32 && executing_list)))
                ADDINTERRUPT;
              else
                {
@@ -3834,6 +3835,7 @@ give_terminal_to (pgrp, force)
 
   if (r == -1)
     errno = e;
+
   return r;
 }
 
diff --git a/jobs.c~ b/jobs.c~
index e5c1bceb5e7d5b4b6506f0ce8bc69230055f2521..d5c2c512838f38d7dd894143279402959058cea8 100644 (file)
--- a/jobs.c~
+++ b/jobs.c~
@@ -67,6 +67,7 @@
 #include "bashintl.h"
 #include "shell.h"
 #include "jobs.h"
+#include "execute_cmd.h"
 #include "flags.h"
 
 #include "builtins/builtext.h"
@@ -144,6 +145,7 @@ extern int subshell_environment, line_number;
 extern int posixly_correct, shell_level;
 extern int last_command_exit_value, last_command_exit_signal;
 extern int loop_level, breaking;
+extern int executing_list;
 extern int sourcelevel;
 extern int running_trap;
 extern sh_builtin_func_t *this_shell_builtin;
@@ -2524,7 +2526,7 @@ if (job == NO_JOB)
                 or until loop, act as if the shell received SIGINT as
                 well, so the loop can be broken.  This doesn't call the
                 SIGINT signal handler; maybe it should. */
-             if (signal_is_trapped (SIGINT) == 0 && loop_level)
+             if (signal_is_trapped (SIGINT) == 0 && (loop_level || executing_list))
                ADDINTERRUPT;
              else
                {
@@ -3833,6 +3835,7 @@ give_terminal_to (pgrp, force)
 
   if (r == -1)
     errno = e;
+
   return r;
 }
 
index 76287048a1c1bafd5b67f502f3950437c4b8d25c..3ed78e5aa3d86867df9844f4435b79c7aef60e0e 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgstr ""
 "Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-08-25 11:13-0400\n"
-"PO-Revision-Date: 2008-09-10 22:16+0200\n"
+"PO-Revision-Date: 2008-09-14 22:01+0200\n"
 "Last-Translator: Nils Naumann <nnau@gmx.net>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -50,12 +50,12 @@ msgstr ""
 #: bashline.c:3268
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
-msgstr ""
+msgstr "%s: Das erste nicht Leerzeichen ist nicht `\\'."
 
 #: bashline.c:3297
 #, c-format
 msgid "no closing `%c' in %s"
-msgstr ""
+msgstr "fehlende schließende `%c' in %s."
 
 #: bashline.c:3331
 #, c-format
@@ -65,17 +65,17 @@ msgstr "%s: Fehlender Doppelpunkt."
 #: builtins/bind.def:199
 #, c-format
 msgid "`%s': invalid keymap name"
-msgstr ""
+msgstr "`%s': Ungültiger KEYMAP Name."
 
 #: builtins/bind.def:238
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot read: %s"
-msgstr "%s: Kann die Datei %s nicht erzeugen."
+msgstr "%s: Nicht lesbar: %s"
 
 #: builtins/bind.def:253
-#, fuzzy, c-format
+#, c-format
 msgid "`%s': cannot unbind"
-msgstr "%s: Kommando nicht gefunden."
+msgstr "`%s': Bindung kann nicht gelöst werden."
 
 #: builtins/bind.def:288 builtins/bind.def:318
 #, c-format
@@ -90,11 +90,11 @@ msgstr "%s ist keiner Taste zugeordnet.\n"
 #: builtins/bind.def:300
 #, c-format
 msgid "%s can be invoked via "
-msgstr ""
+msgstr "%s kann aufgerufen werden durch "
 
 #: builtins/break.def:77 builtins/break.def:117
 msgid "loop count"
-msgstr ""
+msgstr "Schleifen Zähler"
 
 #: builtins/break.def:137
 msgid "only meaningful in a `for', `while', or `until' loop"
@@ -117,7 +117,7 @@ msgstr "Zeile %d: "
 #: builtins/common.c:124
 #, c-format
 msgid "%s: usage: "
-msgstr ""
+msgstr "%s: Gebrauch: "
 
 #: builtins/common.c:137 test.c:822
 msgid "too many arguments"
@@ -173,7 +173,7 @@ msgstr "%s: Ung
 #: builtins/common.c:228
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr ""
+msgstr "`%s': Ist keine gültige Prozess- oder Jobbezeichnung."
 
 #: builtins/common.c:235 error.c:453
 #, c-format
@@ -197,7 +197,7 @@ msgstr "%s ist au
 #: builtins/common.c:253
 #, c-format
 msgid "%s: no such job"
-msgstr ""
+msgstr "%s: Kein solche Job."
 
 #: builtins/common.c:261
 #, c-format
@@ -211,16 +211,16 @@ msgstr "Keine Job Steuerung in dieser Shell."
 #: builtins/common.c:273
 #, c-format
 msgid "%s: restricted"
-msgstr ""
+msgstr "%s: gesperrt"
 
 #: builtins/common.c:275
 msgid "restricted"
-msgstr ""
+msgstr "gesperrt"
 
 #: builtins/common.c:283
 #, c-format
 msgid "%s: not a shell builtin"
-msgstr ""
+msgstr "%s: Ist kein Shell Kommando."
 
 #: builtins/common.c:292
 #, c-format
@@ -230,12 +230,12 @@ msgstr "Schreibfehler: %s."
 #: builtins/common.c:523
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr ""
+msgstr "%s: Kann das nicht aktuelle Verzeichnis wiederfinden: %s: %s\n"
 
 #: builtins/common.c:589 builtins/common.c:591
-#, fuzzy, c-format
+#, c-format
 msgid "%s: ambiguous job spec"
-msgstr "%s: Mehrdeutige Umlenkung."
+msgstr "%s: Mehrdeutige Job Bezeichnung."
 
 #: builtins/complete.def:270
 #, c-format
@@ -261,13 +261,12 @@ msgid "not currently executing completion function"
 msgstr ""
 
 #: builtins/declare.def:122
-#, fuzzy
 msgid "can only be used in a function"
 msgstr "kann nur innerhalb einer Funktion benutzt werden."
 
 #: builtins/declare.def:353
 msgid "cannot use `-f' to make functions"
-msgstr ""
+msgstr "Mit `-f' können keine Funktionen erzeugt werden."
 
 #: builtins/declare.def:365 execute_cmd.c:4696
 #, c-format
@@ -289,9 +288,9 @@ msgid "dynamic loading not available"
 msgstr ""
 
 #: builtins/enable.def:312
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open shared object %s: %s"
-msgstr "Kann die benannte Pipe %s für %s nicht öffnen: %s."
+msgstr ""
 
 #: builtins/enable.def:335
 #, c-format
@@ -322,7 +321,7 @@ msgstr "%s: Ist keine normale Datei."
 #: builtins/evalfile.c:147
 #, c-format
 msgid "%s: file is too large"
-msgstr ""
+msgstr "%s: Die Datei ist zu groß."
 
 #: builtins/evalfile.c:185 execute_cmd.c:4623 shell.c:1449
 #, c-format
@@ -335,9 +334,9 @@ msgid "%s: cannot execute: %s"
 msgstr "%s: Kann nicht ausführen: %s"
 
 #: builtins/exit.def:65
-#, fuzzy, c-format
+#, c-format
 msgid "logout\n"
-msgstr "Abmelden\n"
+msgstr "Abgemeldet\n"
 
 #: builtins/exit.def:88
 msgid "not login shell: use `exit'"
@@ -373,7 +372,7 @@ msgstr ""
 #: builtins/fg_bg.def:158
 #, c-format
 msgid "job %d started without job control"
-msgstr ""
+msgstr "Job %d wurde ohne Jobsteuerung gestartet."
 
 #: builtins/getopt.c:110
 #, c-format
@@ -447,21 +446,21 @@ msgstr ""
 #: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
-msgstr ""
+msgstr "%s: History Substitution gescheitert."
 
 #: builtins/inlib.def:71
 #, c-format
 msgid "%s: inlib failed"
-msgstr ""
+msgstr "%s: inlib gescheitert."
 
 #: builtins/jobs.def:109
 msgid "no other options allowed with `-x'"
-msgstr ""
+msgstr "Keine weiteren Optionen mit `-x' erlaubt."
 
 #: builtins/kill.def:197
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr ""
+msgstr "%s: Die Argumente müssen Prozess- oder Jobbezeichnungen sein."
 
 #: builtins/kill.def:260
 msgid "Unknown error"
@@ -714,9 +713,8 @@ msgstr ""
 
 # logout
 #: builtins/suspend.def:111
-#, fuzzy
 msgid "cannot suspend a login shell"
-msgstr "Beendet eine Loginshell."
+msgstr "Kann die Loginshell nicht unterbrechen."
 
 #: builtins/type.def:234
 #, c-format
@@ -729,9 +727,9 @@ msgid "%s is a shell keyword\n"
 msgstr ""
 
 #: builtins/type.def:274
-#, fuzzy, c-format
+#, c-format
 msgid "%s is a function\n"
-msgstr "%s: Schreibgeschützte Funktion."
+msgstr "%s ist eine Funktion.\n"
 
 #: builtins/type.def:296
 #, c-format
@@ -754,28 +752,27 @@ msgid "%s: invalid limit argument"
 msgstr ""
 
 #: builtins/ulimit.def:398
-#, fuzzy, c-format
+#, c-format
 msgid "`%c': bad command"
-msgstr "%c%c: Falsche Option"
+msgstr "`%c': Falsches Kommando."
 
 #: builtins/ulimit.def:427
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot get limit: %s"
-msgstr "%s: Kann die Datei %s nicht erzeugen."
+msgstr ""
 
 #: builtins/ulimit.def:453
 msgid "limit"
 msgstr "Grenze"
 
 #: builtins/ulimit.def:465 builtins/ulimit.def:765
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot modify limit: %s"
-msgstr "%s: Kann die nicht Grenze: %s ändern."
+msgstr "%s: Kann die Grenze nicht ändern: %s"
 
 #: builtins/umask.def:118
-#, fuzzy
 msgid "octal number"
-msgstr "Oktale Ziffer."
+msgstr ""
 
 #: builtins/umask.def:231
 #, c-format
@@ -792,9 +789,9 @@ msgid " line "
 msgstr " Zeile "
 
 #: error.c:164
-#, fuzzy, c-format
+#, c-format
 msgid "last command: %s\n"
-msgstr "`r', das zuletzt eingegebene Kommando wiederholt."
+msgstr "Letztes Kommando: %s\n"
 
 #: error.c:172
 #, c-format
@@ -802,14 +799,13 @@ msgid "Aborting..."
 msgstr "Abbruch..."
 
 #: error.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "warning: "
 msgstr "Warnung: "
 
 #: error.c:405
-#, fuzzy
 msgid "unknown command error"
-msgstr "Unbekannter Fehler %d."
+msgstr ""
 
 #: error.c:406
 msgid "bad command type"
@@ -817,9 +813,8 @@ msgstr ""
 
 # Programmierfehler
 #: error.c:407
-#, fuzzy
 msgid "bad connector"
-msgstr "bad connector `%d'."
+msgstr ""
 
 #: error.c:408
 #, fuzzy
@@ -832,9 +827,9 @@ msgid "%s: unbound variable"
 msgstr "%s ist nicht gesetzt."
 
 #: eval.c:181
-#, fuzzy, c-format
+#, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
-msgstr "%cZu lange keine Eingabe: Automatisch ausgeloggt.\n"
+msgstr "\aZu lange keine Eingabe: Automatisch ausgeloggt.\n"
 
 #: execute_cmd.c:483
 #, c-format
@@ -1277,14 +1272,13 @@ msgid "unexpected argument to conditional unary operator"
 msgstr ""
 
 #: parse.y:3871
-#, fuzzy, c-format
+#, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr "%s: Zweistelliger (binärer) Operator erwartet."
+msgstr ""
 
 #: parse.y:3875
-#, fuzzy
 msgid "conditional binary operator expected"
-msgstr "%s: Zweistelliger (binärer) Operator erwartet."
+msgstr ""
 
 #: parse.y:3892
 #, c-format
@@ -1296,19 +1290,19 @@ msgid "unexpected argument to conditional binary operator"
 msgstr ""
 
 #: parse.y:3907
-#, fuzzy, c-format
+#, c-format
 msgid "unexpected token `%c' in conditional command"
-msgstr "`:' erwartet für ein bedingten Ausdruck."
+msgstr ""
 
 #: parse.y:3910
-#, fuzzy, c-format
+#, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr "`:' erwartet für ein bedingten Ausdruck."
+msgstr ""
 
 #: parse.y:3914
-#, fuzzy, c-format
+#, c-format
 msgid "unexpected token %d in conditional command"
-msgstr "`:' erwartet für ein bedingten Ausdruck."
+msgstr ""
 
 #: parse.y:5181
 #, c-format
@@ -1316,7 +1310,7 @@ msgid "syntax error near unexpected token `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
 #: parse.y:5199
-#, fuzzy, c-format
+#, c-format
 msgid "syntax error near `%s'"
 msgstr "Syntaxfehler beim unerwarteten Wort `%s'"
 
@@ -1335,9 +1329,8 @@ msgid "Use \"%s\" to leave the shell.\n"
 msgstr "Benutze \"%s\" um die Shell zu verlassen.\n"
 
 #: parse.y:5433
-#, fuzzy
 msgid "unexpected EOF while looking for matching `)'"
-msgstr "Dateiende beim Suchen nach `%c' erreicht."
+msgstr "Dateiende beim Suchen nach passender `)' erreicht."
 
 #: pcomplete.c:1016
 #, c-format
@@ -1364,33 +1357,32 @@ msgid "file descriptor out of range"
 msgstr ""
 
 #: redir.c:146
-#, fuzzy, c-format
+#, c-format
 msgid "%s: ambiguous redirect"
 msgstr "%s: Mehrdeutige Umlenkung."
 
 #: redir.c:150
-#, fuzzy, c-format
+#, c-format
 msgid "%s: cannot overwrite existing file"
 msgstr "%s: Kann existierende Datei nicht überschreiben."
 
 #: redir.c:155
-#, fuzzy, c-format
+#, c-format
 msgid "%s: restricted: cannot redirect output"
-msgstr "%s: Verboten:  `/' ist in Kommandonamen unzulässig."
+msgstr "%s: Gesperrt: Die Ausgabe darf nicht umgeleitet werden."
 
 #: redir.c:160
-#, fuzzy, c-format
+#, c-format
 msgid "cannot create temp file for here-document: %s"
-msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen: %s."
+msgstr ""
 
 #: redir.c:515
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
 msgstr ""
 
 #: redir.c:992
-#, fuzzy
 msgid "redirection error: cannot duplicate fd"
-msgstr "Umlenkfehler"
+msgstr ""
 
 #: shell.c:328
 msgid "could not find /tmp, please create!"
@@ -1401,9 +1393,9 @@ msgid "/tmp must be a valid directory name"
 msgstr "/tmp muß ein gültiger Verzeichnisname sein."
 
 #: shell.c:876
-#, fuzzy, c-format
+#, c-format
 msgid "%c%c: invalid option"
-msgstr "%c%c: Falsche Option"
+msgstr "%c%c: Ungültige Option"
 
 #: shell.c:1637
 msgid "I have no name!"
@@ -1431,9 +1423,7 @@ msgstr "Lange GNU Optionen:\n"
 msgid "Shell options:\n"
 msgstr "Shell-Optionen:\n"
 
-# Was passiert hier?
 #: shell.c:1785
-#, fuzzy
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
 msgstr "\t-irsD oder -c Kommando\t\t(Nur Aufruf)\n"
 
@@ -1501,9 +1491,8 @@ msgid "Floating point exception"
 msgstr "Gleitkommafehler"
 
 #: siglist.c:86
-#, fuzzy
 msgid "Killed"
-msgstr "Abgebrochen"
+msgstr "Gekillt"
 
 #: siglist.c:90
 msgid "Bus error"
@@ -1649,40 +1638,36 @@ msgid "cannot make pipe for process substitution"
 msgstr "Kann keine Pipe für die Prozeßersetzung erzeugen."
 
 #: subst.c:4496
-#, fuzzy
 msgid "cannot make child for process substitution"
-msgstr "Kann keinen Prozeß zum Ersetzen erzeugen: %s."
+msgstr ""
 
 #: subst.c:4541
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open named pipe %s for reading"
-msgstr "Kann die benannte Pipe %s für %s nicht öffnen: %s."
+msgstr "Kann nicht die benannte Pipe %s zum lesen öffnen."
 
 #: subst.c:4543
-#, fuzzy, c-format
+#, c-format
 msgid "cannot open named pipe %s for writing"
-msgstr "Kann die benannte Pipe %s für %s nicht öffnen: %s."
+msgstr "Kann nicht die benannte Pipe %s zum schreiben öffnen."
 
 #: subst.c:4561
-#, fuzzy, c-format
+#, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr "Kann die benannte Pipe %s nicht auf fd %d verdoppeln: %s."
+msgstr "Kann die benannte Pipe %s nicht auf fd %d."
 
 #: subst.c:4757
-#, fuzzy
 msgid "cannot make pipe for command substitution"
-msgstr "Kann keine Pipes für Kommandoersetzung erzeugen: %s."
+msgstr "Kann keine Pipes für Kommandoersetzung erzeugen."
 
 #: subst.c:4791
-#, fuzzy
 msgid "cannot make child for command substitution"
-msgstr "Kann keinen Prozeß für die Kommandoersetzung erzeugen: %s."
+msgstr "Kann keinen Unterprozess für die Kommandoersetzung erzeugen."
 
 # interner Fehler
 #: subst.c:4808
-#, fuzzy
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren: %s."
+msgstr "Kommandoersetzung: Kann Pipe nicht als fd 1 duplizieren."
 
 #: subst.c:5310
 #, c-format
@@ -1706,14 +1691,14 @@ msgid "$%s: cannot assign in this way"
 msgstr "$%s: Kann so nicht zuweisen."
 
 #: subst.c:7441
-#, fuzzy, c-format
+#, c-format
 msgid "bad substitution: no closing \"`\" in %s"
-msgstr "Falsche Ersetzung: Keine schließende `}' in %s."
+msgstr "Falsche Ersetzung: Keine schließende \"`\" in %s."
 
 #: subst.c:8314
 #, c-format
 msgid "no match: %s"
-msgstr ""
+msgstr "Keine Entsprechung: %s"
 
 #: test.c:145
 msgid "argument expected"
@@ -1748,9 +1733,8 @@ msgid "missing `]'"
 msgstr "Fehlende `]'"
 
 #: trap.c:200
-#, fuzzy
 msgid "invalid signal number"
-msgstr "Falsche Signalnummer."
+msgstr "Ungültige Signalnummer."
 
 #: trap.c:323
 #, c-format
@@ -1764,7 +1748,7 @@ msgstr ""
 
 # Programmierfehler
 #: trap.c:371
-#, fuzzy, c-format
+#, c-format
 msgid "trap_handler: bad signal %d"
 msgstr "trap_handler: Falsches Signal %d."
 
@@ -1965,9 +1949,8 @@ msgid "exit [n]"
 msgstr "exit [n]"
 
 #: builtins.c:100
-#, fuzzy
 msgid "logout [n]"
-msgstr "logout"
+msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
@@ -2057,9 +2040,7 @@ msgstr "test [Ausdruck]"
 msgid "[ arg... ]"
 msgstr "[ Argument... ]"
 
-# Warum das übersetzen?
 #: builtins.c:162
-#, fuzzy
 msgid "times"
 msgstr "times"
 
@@ -2182,7 +2163,6 @@ msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c
 msgstr ""
 
 #: builtins.c:250
-#, fuzzy
 msgid ""
 "Define or display aliases.\n"
 "    \n"
@@ -2213,9 +2193,8 @@ msgstr ""
 "    Options:\n"
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
-"    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has been\n"
-"    defined."
+"    Rückgabewert:\n"
+"    Meldet Erfolg, außer wenn NAME nicht existiert."
 
 #: builtins.c:272
 msgid ""
index afc9d112fbc5757df917e4ede66d5264f723de6d..57acb2ce943e5149dc1f959676ab606978e1f9e1 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
-# Swedish translation of bash.
-# Copyright (C) 2005 Free Software Foundation, Inc.
+# Swedish translation of bash
+# Copyright © 2008 Free Software Foundation, Inc.
 # This file is distributed under the same license as the bash package.
-# Daniel Nylander <po@danielnylander.se>, 2005.
+# Göran Uddeborg <goeran@uddeborg.se>, 2008.
+#
+# $Revision: 1.3 $
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: bash 3.0\n"
+"Project-Id-Version: bash 4.0-pre1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-08-25 11:13-0400\n"
-"PO-Revision-Date: 2005-12-28 16:48+0100\n"
-"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
+"PO-Revision-Date: 2008-09-15 13:09+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: arrayfunc.c:49
 msgid "bad array subscript"
-msgstr ""
+msgstr "felaktigt vektorindex"
 
 #: arrayfunc.c:312 builtins/declare.def:467
 #, c-format
 msgid "%s: cannot convert indexed to associative array"
-msgstr ""
+msgstr "%s: det går inte att konvertera en indexerad vektor till associativ"
 
 #: arrayfunc.c:478
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid associative array key"
-msgstr "%s: ogiltigt åtgärdsnamn"
+msgstr "%s: ogiltig nyckel till associativ vektor"
 
 #: arrayfunc.c:480
 #, c-format
 msgid "%s: cannot assign to non-numeric index"
-msgstr ""
+msgstr "%s: det går inte att tilldela till ickenumeriska index"
 
 #: arrayfunc.c:516
 #, c-format
 msgid "%s: %s: must use subscript when assigning associative array"
-msgstr ""
+msgstr "%s: %s: måste använda index vid tilldelning av associativ vektor"
 
 #: bashhist.c:382
 #, c-format
 msgid "%s: cannot create: %s"
-msgstr "%s: kan inte skapa: %s"
+msgstr "%s: det går inte att skapa: %s"
 
 #: bashline.c:3190
 msgid "bash_execute_unix_command: cannot find keymap for command"
-msgstr ""
+msgstr "bash_execute_unix_command: det går inte att hitta en tangentbindning för kommandot"
 
 #: bashline.c:3268
 #, c-format
 msgid "%s: first non-whitespace character is not `\"'"
-msgstr ""
+msgstr "%s: första ickeblanka tecknet är inte '\"'"
 
 #: bashline.c:3297
 #, c-format
 msgid "no closing `%c' in %s"
-msgstr ""
+msgstr "ingen avslutande \"%c\" i %s"
 
 #: bashline.c:3331
 #, c-format
 msgid "%s: missing colon separator"
-msgstr ""
+msgstr "%s: kolonseparator saknas"
 
 #: builtins/bind.def:199
 #, c-format
 msgid "`%s': invalid keymap name"
-msgstr ""
+msgstr "\"%s\": ogiltigt tangentbindningsnamn"
 
 #: builtins/bind.def:238
 #, c-format
 msgid "%s: cannot read: %s"
-msgstr "%s: kan inte läsa: %s"
+msgstr "%s: det går inte att läsa: %s"
 
 #: builtins/bind.def:253
 #, c-format
 msgid "`%s': cannot unbind"
-msgstr ""
+msgstr "\"%s\": det går inte att avbinda"
 
 #: builtins/bind.def:288 builtins/bind.def:318
 #, c-format
 msgid "`%s': unknown function name"
-msgstr ""
+msgstr "\"%s\": okänt funktionsnamn"
 
 #: builtins/bind.def:296
 #, c-format
 msgid "%s is not bound to any keys.\n"
-msgstr ""
+msgstr "%s är inte bundet till några tangenter.\n"
 
 #: builtins/bind.def:300
-#, fuzzy, c-format
+#, c-format
 msgid "%s can be invoked via "
-msgstr "%s kan startas via %s."
+msgstr "%s kan anropas via "
 
 #: builtins/break.def:77 builtins/break.def:117
 msgid "loop count"
-msgstr ""
+msgstr "slingräknare"
 
 #: builtins/break.def:137
 msgid "only meaningful in a `for', `while', or `until' loop"
-msgstr ""
-
-#: builtins/caller.def:133
-msgid ""
-"Returns the context of the current subroutine call.\n"
-"    \n"
-"    Without EXPR, returns "
-msgstr ""
+msgstr "endast meningsfullt i en \"for\"-, \"while\"- eller \"until\"-slinga"
 
 #: builtins/cd.def:215
 msgid "HOME not set"
-msgstr "HOME inte inställd"
+msgstr "HOME är inte satt"
 
 #: builtins/cd.def:227
 msgid "OLDPWD not set"
-msgstr ""
+msgstr "OLDPWD är inte satt"
 
 #: builtins/common.c:107
 #, c-format
 msgid "line %d: "
-msgstr ""
+msgstr "rad %d: "
 
 #: builtins/common.c:124
-#, fuzzy, c-format
+#, c-format
 msgid "%s: usage: "
-msgstr "%s: varning: "
+msgstr "%s: användning: "
 
 #: builtins/common.c:137 test.c:822
 msgid "too many arguments"
@@ -133,17 +129,17 @@ msgstr "för många argument"
 #: builtins/common.c:162 shell.c:493 shell.c:774
 #, c-format
 msgid "%s: option requires an argument"
-msgstr "%s: flagga kräver ett argument"
+msgstr "%s: flaggan kräver ett argument"
 
 #: builtins/common.c:169
 #, c-format
 msgid "%s: numeric argument required"
-msgstr ""
+msgstr "%s: numeriskt argument krävs"
 
 #: builtins/common.c:176
 #, c-format
 msgid "%s: not found"
-msgstr "%s: inte funnen"
+msgstr "%s: finns inte"
 
 #: builtins/common.c:185 shell.c:787
 #, c-format
@@ -161,47 +157,45 @@ msgid "`%s': not a valid identifier"
 msgstr "\"%s\": inte en giltig identifierare"
 
 #: builtins/common.c:209
-#, fuzzy
 msgid "invalid octal number"
-msgstr "ogiltigt nummer"
+msgstr "ogiltigt oktalt tal"
 
 #: builtins/common.c:211
-#, fuzzy
 msgid "invalid hex number"
-msgstr "ogiltigt nummer"
+msgstr "ogiltigt hexadecimalt tal"
 
 #: builtins/common.c:213 expr.c:1255
 msgid "invalid number"
-msgstr "ogiltigt nummer"
+msgstr "ogiltigt tal"
 
 #: builtins/common.c:221
 #, c-format
 msgid "%s: invalid signal specification"
-msgstr ""
+msgstr "%s: ogiltig signalspecifikation"
 
 #: builtins/common.c:228
 #, c-format
 msgid "`%s': not a pid or valid job spec"
-msgstr ""
+msgstr "\"%s\": inte en pid eller giltig jobbspecifikation"
 
 #: builtins/common.c:235 error.c:453
 #, c-format
 msgid "%s: readonly variable"
-msgstr "%s: skrivskyddad variabel"
+msgstr "%s: endast läsbar variabel"
 
 #: builtins/common.c:243
-#, fuzzy, c-format
+#, c-format
 msgid "%s: %s out of range"
-msgstr "UTANFÖR OMRÅDET"
+msgstr "%s: %s utanför giltigt intervall"
 
 #: builtins/common.c:243 builtins/common.c:245
 msgid "argument"
 msgstr "argument"
 
 #: builtins/common.c:245
-#, fuzzy, c-format
+#, c-format
 msgid "%s out of range"
-msgstr "UTANFÖR OMRÅDET"
+msgstr "%s utanför giltigt intervall"
 
 #: builtins/common.c:253
 #, c-format
@@ -211,26 +205,25 @@ msgstr "%s: inget sådant jobb"
 #: builtins/common.c:261
 #, c-format
 msgid "%s: no job control"
-msgstr "%s: ingen jobbkontroll"
+msgstr "%s: ingen jobbstyrning"
 
 #: builtins/common.c:263
 msgid "no job control"
-msgstr "ingen jobbkontroll"
+msgstr "ingen jobbstyrning"
 
 #: builtins/common.c:273
-#, fuzzy, c-format
+#, c-format
 msgid "%s: restricted"
-msgstr "Begränsat"
+msgstr "%s: begränsat"
 
 #: builtins/common.c:275
-#, fuzzy
 msgid "restricted"
-msgstr "Begränsat"
+msgstr "begränsat"
 
 #: builtins/common.c:283
 #, c-format
 msgid "%s: not a shell builtin"
-msgstr ""
+msgstr "%s: inte inbyggt i skalet"
 
 #: builtins/common.c:292
 #, c-format
@@ -240,12 +233,12 @@ msgstr "skrivfel: %s"
 #: builtins/common.c:523
 #, c-format
 msgid "%s: error retrieving current directory: %s: %s\n"
-msgstr ""
+msgstr "%s: fel när aktuell katalog hämtades: %s: %s\n"
 
 #: builtins/common.c:589 builtins/common.c:591
 #, c-format
 msgid "%s: ambiguous job spec"
-msgstr ""
+msgstr "%s: tvetydig jobbspecifikation"
 
 #: builtins/complete.def:270
 #, c-format
@@ -256,19 +249,19 @@ msgstr "%s: ogiltigt åtgärdsnamn"
 #: builtins/complete.def:813
 #, c-format
 msgid "%s: no completion specification"
-msgstr ""
+msgstr "%s: ingen kompletteringsspecifikation"
 
 #: builtins/complete.def:667
 msgid "warning: -F option may not work as you expect"
-msgstr "varning: flaggan -F kanske inte fungerar som du förväntar"
+msgstr "varning: flaggan -F fungerar kanske inte som du väntar dig"
 
 #: builtins/complete.def:669
 msgid "warning: -C option may not work as you expect"
-msgstr "varning: flaggan -C kanske inte fungerar som du förväntar"
+msgstr "varning: flaggan -C fungerar kanske inte som du väntar dig"
 
 #: builtins/complete.def:786
 msgid "not currently executing completion function"
-msgstr ""
+msgstr "kör inte en kompletteringsfunktion"
 
 #: builtins/declare.def:122
 msgid "can only be used in a function"
@@ -276,41 +269,41 @@ msgstr "kan endast användas i en funktion"
 
 #: builtins/declare.def:353
 msgid "cannot use `-f' to make functions"
-msgstr ""
+msgstr "det går inte att använda \"-f\" för att göra funktioner"
 
 #: builtins/declare.def:365 execute_cmd.c:4696
 #, c-format
 msgid "%s: readonly function"
-msgstr "%s: skrivskyddad funktion"
+msgstr "%s: endast läsbar funktion"
 
 #: builtins/declare.def:454
 #, c-format
 msgid "%s: cannot destroy array variables in this way"
-msgstr ""
+msgstr "%s: det går inte att förstöra vektorvariabler på detta sätt"
 
 #: builtins/declare.def:461
 #, c-format
 msgid "%s: cannot convert associative to indexed array"
-msgstr ""
+msgstr "%s: det går inte att konvertera en associativ vektor till indexerad"
 
 #: builtins/enable.def:137 builtins/enable.def:145
 msgid "dynamic loading not available"
-msgstr ""
+msgstr "dynamisk laddning är inte tillgängligt"
 
 #: builtins/enable.def:312
 #, c-format
 msgid "cannot open shared object %s: %s"
-msgstr ""
+msgstr "det går inte att öppna delat objekt %s: %s"
 
 #: builtins/enable.def:335
 #, c-format
 msgid "cannot find %s in shared object %s: %s"
-msgstr ""
+msgstr "kan inte hitta %s i det delade objektet %s: %s"
 
 #: builtins/enable.def:459
 #, c-format
 msgid "%s: not dynamically loaded"
-msgstr "%s: inte dynamiskt inläst"
+msgstr "%s: inte dynamiskt laddad"
 
 #: builtins/enable.def:474
 #, c-format
@@ -326,31 +319,31 @@ msgstr "%s: är en katalog"
 #: builtins/evalfile.c:139
 #, c-format
 msgid "%s: not a regular file"
-msgstr "%s: inte en vanlig fil"
+msgstr "%s: inte en normal fil"
 
 #: builtins/evalfile.c:147
 #, c-format
 msgid "%s: file is too large"
-msgstr "%s: fil är för stor"
+msgstr "%s: filen är för stor"
 
 #: builtins/evalfile.c:185 execute_cmd.c:4623 shell.c:1449
 #, c-format
 msgid "%s: cannot execute binary file"
-msgstr "%s: kan inte starta binärfil"
+msgstr "%s: det kår inte att köra binär fil"
 
 #: builtins/exec.def:212
 #, c-format
 msgid "%s: cannot execute: %s"
-msgstr "%s: kan inte starta: %s"
+msgstr "%s: kan inte köra: %s"
 
 #: builtins/exit.def:65
 #, c-format
 msgid "logout\n"
-msgstr ""
+msgstr "utloggning\n"
 
 #: builtins/exit.def:88
 msgid "not login shell: use `exit'"
-msgstr ""
+msgstr "inte ett inloggningsskal: använd \"exit\""
 
 #: builtins/exit.def:120
 #, c-format
@@ -358,31 +351,31 @@ msgid "There are stopped jobs.\n"
 msgstr "Det finns stoppade jobb.\n"
 
 #: builtins/exit.def:122
-#, fuzzy, c-format
+#, c-format
 msgid "There are running jobs.\n"
-msgstr "Det finns stoppade jobb.\n"
+msgstr "Det finns körande jobb.\n"
 
 #: builtins/fc.def:261
 msgid "no command found"
-msgstr "inget kommando hittades"
+msgstr "hittar inget kommando"
 
 #: builtins/fc.def:341
 msgid "history specification"
-msgstr ""
+msgstr "historiespecifikation"
 
 #: builtins/fc.def:362
 #, c-format
 msgid "%s: cannot open temp file: %s"
-msgstr "%s: kan inte öppna temporärfil: %s"
+msgstr "%s: det går inte att öppna temporärfil: %s"
 
 #: builtins/fg_bg.def:149 builtins/jobs.def:282
 msgid "current"
-msgstr ""
+msgstr "aktuell"
 
 #: builtins/fg_bg.def:158
 #, c-format
 msgid "job %d started without job control"
-msgstr "jobb %d startad utan jobbkontroll"
+msgstr "jobb %d startade utan jobbstyrning"
 
 #: builtins/getopt.c:110
 #, c-format
@@ -392,39 +385,38 @@ msgstr "%s: ogiltig flagga -- %c\n"
 #: builtins/getopt.c:111
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
-msgstr "%s: flagga kräver ett argument -- %c\n"
+msgstr "%s: flaggan kräver ett argument -- %c\n"
 
 #: builtins/hash.def:92
 msgid "hashing disabled"
-msgstr ""
+msgstr "hasning avslaget"
 
 #: builtins/hash.def:138
 #, c-format
 msgid "%s: hash table empty\n"
-msgstr ""
+msgstr "%s: hashtabellen tom\n"
 
 #: builtins/hash.def:244
-#, fuzzy, c-format
+#, c-format
 msgid "hits\tcommand\n"
-msgstr "senaste kommando: %s\n"
+msgstr "träffar\tkommando\n"
 
 #: builtins/help.def:130
 #, c-format
 msgid "Shell commands matching keyword `"
 msgid_plural "Shell commands matching keywords `"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Skalkommandon som matchar nyckelordet '"
+msgstr[1] "Skalkommandon som matchar nyckelorden '"
 
 #: builtins/help.def:168
 #, c-format
-msgid ""
-"no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
-msgstr ""
+msgid "no help topics match `%s'.  Try `help help' or `man -k %s' or `info %s'."
+msgstr "inget hjälpämne matchar \"%s\".  Prova \"help help\" eller \"man -k %s\" eller \"info %s\"."
 
 #: builtins/help.def:185
 #, c-format
 msgid "%s: cannot open: %s"
-msgstr "%s: kan inte öppna: %s"
+msgstr "%s: det går inte att öppna: %s"
 
 #: builtins/help.def:337
 #, c-format
@@ -437,94 +429,101 @@ msgid ""
 "A star (*) next to a name means that the command is disabled.\n"
 "\n"
 msgstr ""
+"Dessa skalkommandon är definierade internt.  Skriv \"help\" för att se\n"
+"denna lista.  Skriv \"help namn\" för att få reda på mer om funktionen\n"
+"\"namn\".  Använd \"info bash\" får att få reda på mer om skalet rent\n"
+"allmänt.  Använd \"man -k\" eller \"info\" för att få reda på mer om\n"
+"kommandon som inte är i listan.\n"
+"\n"
+"En stjärna (*) bredvid ett namn betyder att det kommandot är avstängt.\n"
+"\n"
 
 #: builtins/history.def:154
 msgid "cannot use more than one of -anrw"
-msgstr "kan inte använda mer än en av -anrw"
+msgstr "det går inte att använda mer än en av -anrw"
 
 #: builtins/history.def:186
 msgid "history position"
-msgstr ""
+msgstr "historieposition"
 
 #: builtins/history.def:366
 #, c-format
 msgid "%s: history expansion failed"
-msgstr ""
+msgstr "%s: historieexpansionen misslyckades"
 
 #: builtins/inlib.def:71
-#, fuzzy, c-format
+#, c-format
 msgid "%s: inlib failed"
-msgstr "%s: ogiltig tjänst"
+msgstr "%s: inlib misslyckades"
 
 #: builtins/jobs.def:109
 msgid "no other options allowed with `-x'"
-msgstr ""
+msgstr "inga andra flaggor är tillåtna med \"-x\""
 
 #: builtins/kill.def:197
 #, c-format
 msgid "%s: arguments must be process or job IDs"
-msgstr ""
+msgstr "%s: argument måste vara processer eller job-id:n"
 
 #: builtins/kill.def:260
 msgid "Unknown error"
 msgstr "Okänt fel"
 
 #: builtins/let.def:95 builtins/let.def:120 expr.c:501 expr.c:516
-#, fuzzy
 msgid "expression expected"
-msgstr "Förväntade uttryck"
+msgstr "uttryck förväntades"
 
 #: builtins/mapfile.def:215 builtins/read.def:271
 #, c-format
 msgid "%s: invalid file descriptor specification"
-msgstr ""
+msgstr "%s: ogiltig filidentifierarspecifikation"
 
 #: builtins/mapfile.def:223 builtins/read.def:278
 #, c-format
 msgid "%d: invalid file descriptor: %s"
-msgstr ""
+msgstr "%d: ogiltig filbeskrivare: %s"
 
 #: builtins/mapfile.def:232 builtins/mapfile.def:270
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid line count"
-msgstr "%s: ogiltig flagga"
+msgstr "%s: ogiltigt radantal"
 
 #: builtins/mapfile.def:243
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid array origin"
-msgstr "%s: ogiltig flagga"
+msgstr "%s: ogiltig vektorstart"
 
 #: builtins/mapfile.def:260
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid callback quantum"
-msgstr "Ogiltigt aliasnamn"
+msgstr "%s: ogiltigt återanropskvanta"
 
 #: builtins/mapfile.def:292
 msgid "empty array variable name"
-msgstr ""
+msgstr "tomt vektorvariabelnamn"
 
 #: builtins/mapfile.def:313
 msgid "array variable support required"
-msgstr ""
+msgstr "stöd för vektorvariabler krävs"
 
 #: builtins/printf.def:364
 #, c-format
 msgid "`%s': missing format character"
-msgstr "\"%s\": formattecken saknas"
+msgstr "\"%s\": formateringstecken saknas"
 
 #: builtins/printf.def:541
 #, c-format
 msgid "`%c': invalid format character"
-msgstr "\"%c\": ogiltigt formattecken"
+msgstr "\"%c\": ogiltigt formateringstecken"
 
 #: builtins/printf.def:568
-#, fuzzy, c-format
+#, c-format
 msgid "warning: %s: %s"
-msgstr "%s: varning: "
+msgstr "varning: %s: %s"
 
 #: builtins/printf.def:747
 msgid "missing hex digit for \\x"
-msgstr ""
+msgstr "hexadecimal siffra saknas för \\x"
 
 #: builtins/pushd.def:195
 msgid "no other directory"
@@ -532,15 +531,15 @@ msgstr "ingen annan katalog"
 
 #: builtins/pushd.def:462
 msgid "<no current directory>"
-msgstr "<ingen nuvarande katalog>"
+msgstr "<ingen aktuell katalog>"
 
 #: builtins/pushd.def:506
 msgid "directory stack empty"
-msgstr ""
+msgstr "katalogstacken är tom"
 
 #: builtins/pushd.def:508
 msgid "directory stack index"
-msgstr ""
+msgstr "katalogstackindex"
 
 #: builtins/pushd.def:683
 msgid ""
@@ -557,14 +556,30 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "\tdirs when invoked without options, starting with zero."
 msgstr ""
+"Visa listan av kataloger i minnet just nu.  Kataloger hamnar i listan\n"
+"    med kommandot \"pushd\" command.  Du kan komma tillbaka upp genom\n"
+"    listan med kommandot \"popd\".\n"
+"    \n"
+"    Flaggor:\n"
+"      -c\tnollställ katalogstacken genom att bo bort alla elementen\n"
+"      -l\tskriv inte ut versioner med tildeprefix av kataloger som är\n"
+"    \trelativa din hemkatalog\n"
+"      -p\tskriv katalogstacken med en post per rad\n"
+"      -v\tskriv katalogstacken med en post per rad inledda med dess\n"
+"    \tposition i stacken\n"
+"    \n"
+"    Argument:\n"
+"      +N\tVisa den N:e posten räknat från vänster i listan som visas\n"
+"    \tav dirs när det anropas utan flaggor, räknat från noll.\n"
+"    \n"
+"      -N\tVisa den N:e posten räkntat från höger i listan som visas\n"
+"\tav dirs när det anropas utan flaggor, räknat från noll."
 
 #: builtins/pushd.def:705
 msgid ""
@@ -590,6 +605,27 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
+"Lägger till en katalog till toppen av katalogstacken, eller roterar\n"
+"    stacken, och gör den nya toppen av stacken till den aktuella\n"
+"    arbetskatalogen.  Utan argument, byt de två toppkatalogerna.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tUndertryck det normala bytet av katalog när kataloger\n"
+"    \tläggs till på stacken, så att endast stacken ändras.\n"
+"    \n"
+"    Argument:\n"
+"      +N\tRoterar stacken så att den N:e katalogen (räknat från\n"
+"    \tvänster i listan som visas av \"dirs\", med början på noll) hamnar\n"
+"    \tpå toppen.\n"
+"    \n"
+"      -N\tRoterar stacken så att den N:e katalogen (räknat från\n"
+"    \thöger i listan som visas av \"dirs\", med början på noll) hamnar\n"
+"    \tpå toppen.\n"
+"    \n"
+"      kat\tLägger till KAT till toppen av katalogstacken, och gör den\n"
+"    \ttill den nya aktuella arbetskatalogen.\n"
+"    \n"
+"    Den inbyggda \"dirs\" visar katalogstacken."
 
 #: builtins/pushd.def:730
 msgid ""
@@ -611,11 +647,28 @@ msgid ""
 "    \n"
 "    The `dirs' builtin displays the directory stack."
 msgstr ""
+"Tar bort poster från katalogstacken.  Utan argument tas den översta\n"
+"    katalogen bort från stacken, och byte görs till den nya toppkatalogen.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tUndertryck det normala bytet av katalog när kataloger\n"
+"    \tläggs till på stacken, så att endast stacken ändras.\n"
+"    \n"
+"    Arguments:\n"
+"      +N\tTar bort den N:e posten räknat från vänster i listan\n"
+"    \tsom visas av \"dirs\", med början på noll.  Till exempel: \"popd +0\"\n"
+"    \ttar bort den första katalogen, \"popd +1\" den andra.\n"
+"    \n"
+"      -N\tTar bort den N:e posten räknat från höger i listan\n"
+"    \tsom visas av \"dirs\", med början på noll.  Till exempel: \"popd -0\"\n"
+"    \ttar bort den sista katalogen, \"popd -1\" den näst sista.\n"
+"    \n"
+"    Den inbyggda \"dirs\" visar katalogstacken."
 
 #: builtins/read.def:247
 #, c-format
 msgid "%s: invalid timeout specification"
-msgstr ""
+msgstr "%s: ogiltig tidsgränsspecifikation"
 
 #: builtins/read.def:569
 #, c-format
@@ -624,26 +677,26 @@ msgstr "läsfel: %d: %s"
 
 #: builtins/return.def:68
 msgid "can only `return' from a function or sourced script"
-msgstr ""
+msgstr "det går bara att göra \"return\" från en funktion eller källinläst skript"
 
 #: builtins/set.def:768
 msgid "cannot simultaneously unset a function and a variable"
-msgstr ""
+msgstr "det går inte att samtidigt ta bort en funktion och en variabel"
 
 #: builtins/set.def:805
 #, c-format
 msgid "%s: cannot unset"
-msgstr ""
+msgstr "%s: det går inte att ta bort tilldelning"
 
 #: builtins/set.def:812
 #, c-format
 msgid "%s: cannot unset: readonly %s"
-msgstr ""
+msgstr "%s: det går inte att ta bort tilldelning: endast läsbar %s"
 
 #: builtins/set.def:823
 #, c-format
 msgid "%s: not an array variable"
-msgstr ""
+msgstr "%s: inte en vektorvariabel"
 
 #: builtins/setattr.def:186
 #, c-format
@@ -652,43 +705,43 @@ msgstr "%s: inte en funktion"
 
 #: builtins/shift.def:71 builtins/shift.def:77
 msgid "shift count"
-msgstr ""
+msgstr "skiftantal"
 
 #: builtins/shopt.def:250
 msgid "cannot set and unset shell options simultaneously"
-msgstr ""
+msgstr "det går inte att sätta och ta bort skalflaggor samtidigt"
 
 #: builtins/shopt.def:315
 #, c-format
 msgid "%s: invalid shell option name"
-msgstr ""
+msgstr "%s: ogiltigt skalflaggsnamn"
 
 #: builtins/source.def:128
 msgid "filename argument required"
-msgstr ""
+msgstr "filnamnsargument krävs"
 
 #: builtins/source.def:153
 #, c-format
 msgid "%s: file not found"
-msgstr "%s: fil inte hittad"
+msgstr "%s: filen finns inte"
 
 #: builtins/suspend.def:101
 msgid "cannot suspend"
-msgstr ""
+msgstr "det går inte att suspendera"
 
 #: builtins/suspend.def:111
 msgid "cannot suspend a login shell"
-msgstr ""
+msgstr "det går inte att suspendera ett inloggningsskal"
 
 #: builtins/type.def:234
 #, c-format
 msgid "%s is aliased to `%s'\n"
-msgstr ""
+msgstr "%s är ett alias för \"%s\"\n"
 
 #: builtins/type.def:255
 #, c-format
 msgid "%s is a shell keyword\n"
-msgstr ""
+msgstr "%s är ett nyckelord i skalet\n"
 
 #: builtins/type.def:274
 #, c-format
@@ -698,7 +751,7 @@ msgstr "%s är en funktion\n"
 #: builtins/type.def:296
 #, c-format
 msgid "%s is a shell builtin\n"
-msgstr ""
+msgstr "%s är inbyggt i skalet\n"
 
 #: builtins/type.def:317 builtins/type.def:391
 #, c-format
@@ -708,12 +761,12 @@ msgstr "%s är %s\n"
 #: builtins/type.def:337
 #, c-format
 msgid "%s is hashed (%s)\n"
-msgstr ""
+msgstr "%s är hashad (%s)\n"
 
 #: builtins/ulimit.def:372
 #, c-format
 msgid "%s: invalid limit argument"
-msgstr ""
+msgstr "%s: ogiltigt gränsargument"
 
 #: builtins/ulimit.def:398
 #, c-format
@@ -723,34 +776,34 @@ msgstr "\"%c\": felaktigt kommando"
 #: builtins/ulimit.def:427
 #, c-format
 msgid "%s: cannot get limit: %s"
-msgstr ""
+msgstr "%s: kan inte avgöra gränsen: %s"
 
 #: builtins/ulimit.def:453
 msgid "limit"
-msgstr ""
+msgstr "gräns"
 
 #: builtins/ulimit.def:465 builtins/ulimit.def:765
 #, c-format
 msgid "%s: cannot modify limit: %s"
-msgstr ""
+msgstr "%s: kan inte ändra gränsen: %s"
 
 #: builtins/umask.def:118
 msgid "octal number"
-msgstr "oktalt nummer"
+msgstr "oktalt tal"
 
 #: builtins/umask.def:231
 #, c-format
 msgid "`%c': invalid symbolic mode operator"
-msgstr ""
+msgstr "\"%c\": ogiltig operator för symboliskt läge"
 
 #: builtins/umask.def:286
 #, c-format
 msgid "`%c': invalid symbolic mode character"
-msgstr ""
+msgstr "\"%c\": ogiltigt tecken för symboliskt läge"
 
 #: error.c:89 error.c:320 error.c:322 error.c:324
 msgid " line "
-msgstr ""
+msgstr " rad "
 
 #: error.c:164
 #, c-format
@@ -763,9 +816,9 @@ msgid "Aborting..."
 msgstr "Avbryter..."
 
 #: error.c:260
-#, fuzzy, c-format
+#, c-format
 msgid "warning: "
-msgstr "%s: varning: "
+msgstr "varning: "
 
 #: error.c:405
 msgid "unknown command error"
@@ -773,50 +826,49 @@ msgstr "okänt kommandofel"
 
 #: error.c:406
 msgid "bad command type"
-msgstr ""
+msgstr "felaktig kommandotyp"
 
 #: error.c:407
 msgid "bad connector"
-msgstr ""
+msgstr "felaktig anslutning"
 
 #: error.c:408
 msgid "bad jump"
-msgstr ""
+msgstr "felaktigt hopp"
 
 #: error.c:446
 #, c-format
 msgid "%s: unbound variable"
-msgstr ""
+msgstr "%s: obunden variabel"
 
 #: eval.c:181
 #, c-format
 msgid "\atimed out waiting for input: auto-logout\n"
-msgstr ""
+msgstr "\atiden gick ut i väntan på indata: automatisk utloggning\n"
 
 #: execute_cmd.c:483
 #, c-format
 msgid "cannot redirect standard input from /dev/null: %s"
-msgstr ""
+msgstr "det går inte att omdiregera standard in från /dev/null: %s"
 
 #: execute_cmd.c:1079
 #, c-format
 msgid "TIMEFORMAT: `%c': invalid format character"
-msgstr "TIDSFORMAT: \"%c\": ogiltigt formattecken"
+msgstr "TIMEFORMAT: \"%c\": ogiltigt formateringstecken"
 
 #: execute_cmd.c:1930
-#, fuzzy
 msgid "pipe error"
-msgstr "skrivfel: %s"
+msgstr "rörfel"
 
 #: execute_cmd.c:4243
 #, c-format
 msgid "%s: restricted: cannot specify `/' in command names"
-msgstr ""
+msgstr "%s: begränsat: det går inte att ange \"/\" i kommandonamn"
 
 #: execute_cmd.c:4334
 #, c-format
 msgid "%s: command not found"
-msgstr "%s: kommando hittades inte"
+msgstr "%s: kommandot finns inte"
 
 #: execute_cmd.c:4586
 #, c-format
@@ -826,238 +878,238 @@ msgstr "%s: %s: felaktig tolk"
 #: execute_cmd.c:4735
 #, c-format
 msgid "cannot duplicate fd %d to fd %d"
-msgstr ""
+msgstr "det går inte att duplicera fb %d till fb %d"
 
 #: expr.c:241
 msgid "expression recursion level exceeded"
-msgstr ""
+msgstr "rekursionsnivå i uttryck överskriden"
 
 #: expr.c:265
 msgid "recursion stack underflow"
-msgstr ""
+msgstr "underspill i rekursionsstacken"
 
 #: expr.c:379
 msgid "syntax error in expression"
-msgstr "syntaxfel i uttryck"
+msgstr "syntaxfel i uttrycket"
 
 #: expr.c:419
 msgid "attempted assignment to non-variable"
-msgstr ""
+msgstr "försök att tilldela till en icke-variabel"
 
 #: expr.c:440 expr.c:445 expr.c:756
 msgid "division by 0"
-msgstr "delning med 0"
+msgstr "division med 0"
 
 #: expr.c:471
 msgid "bug: bad expassign token"
-msgstr ""
+msgstr "bug: felaktig expassign-token"
 
 #: expr.c:513
 msgid "`:' expected for conditional expression"
-msgstr ""
+msgstr "\":\" förväntades i villkorligt uttryck"
 
 #: expr.c:781
 msgid "exponent less than 0"
-msgstr ""
+msgstr "exponenten är mindre än 0"
 
 #: expr.c:826
 msgid "identifier expected after pre-increment or pre-decrement"
-msgstr ""
+msgstr "en identifierare förväntades efter pre-ökning eller pre-minskning"
 
 #: expr.c:854
 msgid "missing `)'"
-msgstr "saknar `)'"
+msgstr "\")\" saknas"
 
 #: expr.c:897 expr.c:1175
 msgid "syntax error: operand expected"
-msgstr ""
+msgstr "syntaxfel: en operand förväntades"
 
 #: expr.c:1177
 msgid "syntax error: invalid arithmetic operator"
-msgstr ""
+msgstr "syntaxfel: ogiltig aritmetisk operator"
 
 #: expr.c:1201
 #, c-format
 msgid "%s%s%s: %s (error token is \"%s\")"
-msgstr ""
+msgstr "%s%s%s: %s (felsymbol är \"%s\")"
 
 #: expr.c:1259
 msgid "invalid arithmetic base"
-msgstr ""
+msgstr "ogiltig aritmetisk bas"
 
 #: expr.c:1279
 msgid "value too great for base"
-msgstr ""
+msgstr "värdet är för stort för basen"
 
 #: expr.c:1328
-#, fuzzy, c-format
+#, c-format
 msgid "%s: expression error\n"
-msgstr "Förväntade uttryck"
+msgstr "%s: uttrycksfel\n"
 
 #: general.c:61
 msgid "getcwd: cannot access parent directories"
-msgstr ""
+msgstr "getcwd: det går inte att komma åt föräldrakatalogen"
 
 #: input.c:94 subst.c:4551
 #, c-format
 msgid "cannot reset nodelay mode for fd %d"
-msgstr ""
+msgstr "det går inte att återställa fördröjningsfritt läge för fb %d"
 
 #: input.c:258
 #, c-format
 msgid "cannot allocate new file descriptor for bash input from fd %d"
-msgstr ""
+msgstr "det går inte att allokera en ny filbeskrivare för bashindata från fb %d"
 
 #: input.c:266
 #, c-format
 msgid "save_bash_input: buffer already exists for new fd %d"
-msgstr ""
+msgstr "save_bash_input: buffert finns redan för ny fb %d"
 
 #: jobs.c:464
 msgid "start_pipeline: pgrp pipe"
-msgstr ""
+msgstr "start_pipeline: pgrp rör"
 
 #: jobs.c:879
 #, c-format
 msgid "forked pid %d appears in running job %d"
-msgstr ""
+msgstr "avgrenad pid %d fins i körande jobb %d"
 
 #: jobs.c:997
 #, c-format
 msgid "deleting stopped job %d with process group %ld"
-msgstr ""
+msgstr "tar bort stoppat jobb %d med processgrupp %ld"
 
 #: jobs.c:1102
 #, c-format
 msgid "add_process: process %5ld (%s) in the_pipeline"
-msgstr ""
+msgstr "add_process: process %5ld (%s) i the_pipeline"
 
 #: jobs.c:1105
 #, c-format
 msgid "add_process: pid %5ld (%s) marked as still alive"
-msgstr ""
+msgstr "add_process: pid %5ld (%s) markerad som fortfarande vid liv"
 
 #: jobs.c:1393
 #, c-format
 msgid "describe_pid: %ld: no such pid"
-msgstr ""
+msgstr "describe_pid: %ld: ingen sådan pid"
 
 #: jobs.c:1408
 #, c-format
 msgid "Signal %d"
-msgstr ""
+msgstr "Signal %d"
 
 #: jobs.c:1422 jobs.c:1447
 msgid "Done"
-msgstr ""
+msgstr "Klart"
 
 #: jobs.c:1427 siglist.c:122
 msgid "Stopped"
-msgstr ""
+msgstr "Stoppat"
 
 #: jobs.c:1431
 #, c-format
 msgid "Stopped(%s)"
-msgstr ""
+msgstr "Stoppat(%s)"
 
 #: jobs.c:1435
 msgid "Running"
-msgstr ""
+msgstr "Kör"
 
 #: jobs.c:1449
 #, c-format
 msgid "Done(%d)"
-msgstr ""
+msgstr "Klart(%d)"
 
 #: jobs.c:1451
 #, c-format
 msgid "Exit %d"
-msgstr ""
+msgstr "Avslut %d"
 
 #: jobs.c:1454
 msgid "Unknown status"
-msgstr ""
+msgstr "Okänd status"
 
 #: jobs.c:1541
 #, c-format
 msgid "(core dumped) "
-msgstr ""
+msgstr "(minnesutskrift skapad) "
 
 #: jobs.c:1560
 #, c-format
 msgid "  (wd: %s)"
-msgstr ""
+msgstr "  (ak: %s)"
 
 #: jobs.c:1761
 #, c-format
 msgid "child setpgid (%ld to %ld)"
-msgstr ""
+msgstr "barns setpgid (%ld till %ld)"
 
 #: jobs.c:2089 nojobs.c:576
 #, c-format
 msgid "wait: pid %ld is not a child of this shell"
-msgstr ""
+msgstr "wait: pid %ld är inte ett barn till detta skal"
 
 #: jobs.c:2316
 #, c-format
 msgid "wait_for: No record of process %ld"
-msgstr ""
+msgstr "wait_for: Ingen uppgift om process %ld"
 
 #: jobs.c:2588
 #, c-format
 msgid "wait_for_job: job %d is stopped"
-msgstr ""
+msgstr "wait_for_job: jobb %d är stoppat"
 
 #: jobs.c:2810
 #, c-format
 msgid "%s: job has terminated"
-msgstr "%s: jobb har avslutats"
+msgstr "%s: jobbet har avslutat"
 
 #: jobs.c:2819
 #, c-format
 msgid "%s: job %d already in background"
-msgstr "%s: jobb %d redan i bakgrund"
+msgstr "%s: jobb %d är redan i bakgrunden"
 
 #: jobs.c:3482
-#, fuzzy, c-format
+#, c-format
 msgid "%s: line %d: "
-msgstr "%s: varning: "
+msgstr "%s: rad %d: "
 
 #: jobs.c:3496 nojobs.c:805
 #, c-format
 msgid " (core dumped)"
-msgstr ""
+msgstr " (minnesutskrift skapad)"
 
 #: jobs.c:3508 jobs.c:3521
 #, c-format
 msgid "(wd now: %s)\n"
-msgstr ""
+msgstr "(ak nu: %s)\n"
 
 #: jobs.c:3553
 msgid "initialize_job_control: getpgrp failed"
-msgstr ""
+msgstr "initialize_job_control: getpgrp misslyckades"
 
 #: jobs.c:3613
 msgid "initialize_job_control: line discipline"
-msgstr ""
+msgstr "initialize_job_control: linjedisciplin"
 
 #: jobs.c:3623
 msgid "initialize_job_control: setpgid"
-msgstr ""
+msgstr "initialize_job_control: setpgid"
 
 #: jobs.c:3651
 #, c-format
 msgid "cannot set terminal process group (%d)"
-msgstr ""
+msgstr "det går inte att sätta terminalprocessgrupp (%d)"
 
 #: jobs.c:3656
 msgid "no job control in this shell"
-msgstr "ingen jobbkontroll i detta skal"
+msgstr "ingen jobbstyrning i detta skal"
 
 #: lib/malloc/malloc.c:296
 #, c-format
 msgid "malloc: failed assertion: %s\n"
-msgstr ""
+msgstr "malloc: försäkran misslyckades: %s\n"
 
 #: lib/malloc/malloc.c:312
 #, c-format
@@ -1065,62 +1117,63 @@ msgid ""
 "\r\n"
 "malloc: %s:%d: assertion botched\r\n"
 msgstr ""
+"\r\n"
+"malloc: %s:%d: försäkran gick fel\r\n"
 
 #: lib/malloc/malloc.c:313
-#, fuzzy
 msgid "unknown"
-msgstr "%s: okänd värd"
+msgstr "okänd"
 
 #: lib/malloc/malloc.c:797
 msgid "malloc: block on free list clobbered"
-msgstr ""
+msgstr "malloc: block på frilista överskrivet"
 
 #: lib/malloc/malloc.c:874
 msgid "free: called with already freed block argument"
-msgstr ""
+msgstr "free: anropad med redan frigjort block som argument"
 
 #: lib/malloc/malloc.c:877
 msgid "free: called with unallocated block argument"
-msgstr ""
+msgstr "free: anropad med oallokerat block som argument"
 
 #: lib/malloc/malloc.c:896
 msgid "free: underflow detected; mh_nbytes out of range"
-msgstr ""
+msgstr "free: underspill upptäckt: mh_nbytes utanför giltigt intervall"
 
 #: lib/malloc/malloc.c:902
 msgid "free: start and end chunk sizes differ"
-msgstr ""
+msgstr "free: start- och slutstyckesstorlekar skiljer"
 
 #: lib/malloc/malloc.c:1001
 msgid "realloc: called with unallocated block argument"
-msgstr ""
+msgstr "realloc: anropat med oallokerat block som argument"
 
 #: lib/malloc/malloc.c:1016
 msgid "realloc: underflow detected; mh_nbytes out of range"
-msgstr ""
+msgstr "realloc: underspill upptäckt: mh_nbytes utanför giltigt intervall"
 
 #: lib/malloc/malloc.c:1022
 msgid "realloc: start and end chunk sizes differ"
-msgstr ""
+msgstr "realloc: start- och slutstycesstorlekar skiljer"
 
 #: lib/malloc/table.c:177
 #, c-format
 msgid "register_alloc: alloc table is full with FIND_ALLOC?\n"
-msgstr ""
+msgstr "register_alloc: allokeringstabellen är full med FIND_ALLOC?\n"
 
 #: lib/malloc/table.c:184
 #, c-format
 msgid "register_alloc: %p already in table as allocated?\n"
-msgstr ""
+msgstr "register_alloc: %p finns redan i tabellen som allokerat?\n"
 
 #: lib/malloc/table.c:220
 #, c-format
 msgid "register_free: %p already in table as free?\n"
-msgstr ""
+msgstr "register_free: %p finns redan i tabellen som fritt?\n"
 
 #: lib/sh/fmtulong.c:101
 msgid "invalid base"
-msgstr ""
+msgstr "ogiltig bas"
 
 #: lib/sh/netopen.c:168
 #, c-format
@@ -1135,11 +1188,11 @@ msgstr "%s: ogiltig tjänst"
 #: lib/sh/netopen.c:306
 #, c-format
 msgid "%s: bad network path specification"
-msgstr ""
+msgstr "%s: felaktig specifikation av nätverkssökväg"
 
 #: lib/sh/netopen.c:346
 msgid "network operations not supported"
-msgstr ""
+msgstr "nätverksoperationer stöds inte"
 
 #: mailcheck.c:433
 msgid "You have mail in $_"
@@ -1156,11 +1209,11 @@ msgstr "Posten i %s har lästs\n"
 
 #: make_cmd.c:322
 msgid "syntax error: arithmetic expression required"
-msgstr ""
+msgstr "syntaxfel: aritmetiskt uttryck krävs"
 
 #: make_cmd.c:324
 msgid "syntax error: `;' unexpected"
-msgstr "syntaxfel: \";\" oväntad"
+msgstr "syntaxfel: oväntat \";\""
 
 #: make_cmd.c:325
 #, c-format
@@ -1170,100 +1223,100 @@ msgstr "syntaxfel: \"((%s))\""
 #: make_cmd.c:567
 #, c-format
 msgid "make_here_document: bad instruction type %d"
-msgstr ""
+msgstr "make_here_document: felaktig instruktionstyp %d"
 
 #: make_cmd.c:651
 #, c-format
 msgid "here-document at line %d delimited by end-of-file (wanted `%s')"
-msgstr ""
+msgstr "här-dokument på rad %d avgränsas av filslut (ville ha \"%s\")"
 
 #: make_cmd.c:746
 #, c-format
 msgid "make_redirection: redirection instruction `%d' out of range"
-msgstr ""
+msgstr "make_redirection: omdirigeringsinstruktion \"%d\" utanför giltigt intervall"
 
 #: parse.y:2982 parse.y:3204
 #, c-format
 msgid "unexpected EOF while looking for matching `%c'"
-msgstr ""
+msgstr "oväntat filslut vid sökning efter matchande \"%c\""
 
 #: parse.y:3708
 msgid "unexpected EOF while looking for `]]'"
-msgstr ""
+msgstr "oväntat filslut vid sökning efter \"]]\""
 
 #: parse.y:3713
 #, c-format
 msgid "syntax error in conditional expression: unexpected token `%s'"
-msgstr ""
+msgstr "syntaxfel i villkorligt uttryck: oväntad symbol \"%s\""
 
 #: parse.y:3717
 msgid "syntax error in conditional expression"
-msgstr ""
+msgstr "syntaxfel i villkorligt uttryck"
 
 #: parse.y:3795
 #, c-format
 msgid "unexpected token `%s', expected `)'"
-msgstr ""
+msgstr "oväntad symbol \"%s\", \")\" förväntades"
 
 #: parse.y:3799
 msgid "expected `)'"
-msgstr "förväntade `)'"
+msgstr "\")\" förväntades"
 
 #: parse.y:3827
 #, c-format
 msgid "unexpected argument `%s' to conditional unary operator"
-msgstr ""
+msgstr "oväntat argument \"%s\" till villkorlig unär operator"
 
 #: parse.y:3831
 msgid "unexpected argument to conditional unary operator"
-msgstr ""
+msgstr "oväntat argument till villkorlig unär operator"
 
 #: parse.y:3871
 #, c-format
 msgid "unexpected token `%s', conditional binary operator expected"
-msgstr ""
+msgstr "oväntad symbol \"%s\", villkorlig binär operator förväntades"
 
 #: parse.y:3875
 msgid "conditional binary operator expected"
-msgstr ""
+msgstr "villkorlig binär operato förväntades"
 
 #: parse.y:3892
 #, c-format
 msgid "unexpected argument `%s' to conditional binary operator"
-msgstr ""
+msgstr "oväntat argument \"%s\" till villkorlig binär operator"
 
 #: parse.y:3896
 msgid "unexpected argument to conditional binary operator"
-msgstr ""
+msgstr "oväntat argument till villkorlig binär operator"
 
 #: parse.y:3907
 #, c-format
 msgid "unexpected token `%c' in conditional command"
-msgstr ""
+msgstr "oväntad symbol \"%c\" i villkorligt kommando"
 
 #: parse.y:3910
 #, c-format
 msgid "unexpected token `%s' in conditional command"
-msgstr ""
+msgstr "oväntad symbol \"%s\" i villkorligt kommando"
 
 #: parse.y:3914
 #, c-format
 msgid "unexpected token %d in conditional command"
-msgstr ""
+msgstr "oväntad symbol %d i villkorligt kommando"
 
 #: parse.y:5181
 #, c-format
 msgid "syntax error near unexpected token `%s'"
-msgstr ""
+msgstr "syntaxfel när den oväntade symbolen \"%s\""
 
 #: parse.y:5199
-#, fuzzy, c-format
+#, c-format
 msgid "syntax error near `%s'"
-msgstr "Syntaxfel nära \"%1\""
+msgstr "syntaxfel nära \"%s\""
 
 #: parse.y:5209
 msgid "syntax error: unexpected end of file"
-msgstr ""
+msgstr "syntaxfel: oväntat filslut"
 
 #: parse.y:5209
 msgid "syntax error"
@@ -1272,67 +1325,67 @@ msgstr "syntaxfel"
 #: parse.y:5271
 #, c-format
 msgid "Use \"%s\" to leave the shell.\n"
-msgstr "Använd \"%s\" fÃr att lämna skalet.\n"
+msgstr "Använd \"%s\" fär att lämna skalet.\n"
 
 #: parse.y:5433
 msgid "unexpected EOF while looking for matching `)'"
-msgstr ""
+msgstr "oväntat filslut när matchande \")\" söktes"
 
 #: pcomplete.c:1016
 #, c-format
 msgid "completion: function `%s' not found"
-msgstr ""
+msgstr "komplettering: funktion \"%s\" finns inte"
 
 #: pcomplib.c:179
 #, c-format
 msgid "progcomp_insert: %s: NULL COMPSPEC"
-msgstr ""
+msgstr "progcomp_insert: %s: NULL COMPSPEC"
 
 #: print_cmd.c:287
 #, c-format
 msgid "print_command: bad connector `%d'"
-msgstr ""
+msgstr "print_command: felaktig anslutning \"%d\""
 
 #: print_cmd.c:1347
 #, c-format
 msgid "cprintf: `%c': invalid format character"
-msgstr ""
+msgstr "cprintf: \"%c\": ogiltigt formateringstecken"
 
 #: redir.c:104
 msgid "file descriptor out of range"
-msgstr ""
+msgstr "filbeskrivare utanför giltigt intervall"
 
 #: redir.c:146
 #, c-format
 msgid "%s: ambiguous redirect"
-msgstr ""
+msgstr "%s: tvetydig omdirigering"
 
 #: redir.c:150
 #, c-format
 msgid "%s: cannot overwrite existing file"
-msgstr ""
+msgstr "%s: begränsad: det går inte att skriva över en existerande fil"
 
 #: redir.c:155
 #, c-format
 msgid "%s: restricted: cannot redirect output"
-msgstr ""
+msgstr "%s: begränsad: det går inte att omdirigera utdata"
 
 #: redir.c:160
 #, c-format
 msgid "cannot create temp file for here-document: %s"
-msgstr ""
+msgstr "det går inte att skapa temporärfil för här-dokument: %s"
 
 #: redir.c:515
 msgid "/dev/(tcp|udp)/host/port not supported without networking"
-msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverk"
+msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverksfunktion"
 
 #: redir.c:992
 msgid "redirection error: cannot duplicate fd"
-msgstr ""
+msgstr "omdirigeringsfel: det går inte att duplicera fb"
 
 #: shell.c:328
 msgid "could not find /tmp, please create!"
-msgstr "kunde inte hitta /tmp, vänligen skapa den!"
+msgstr "hittade inte /tmp, var god skapa!"
 
 #: shell.c:332
 msgid "/tmp must be a valid directory name"
@@ -1350,7 +1403,7 @@ msgstr "Jag har inget namn!"
 #: shell.c:1777
 #, c-format
 msgid "GNU bash, version %s-(%s)\n"
-msgstr ""
+msgstr "GNU bash, version %s-(%s)\n"
 
 #: shell.c:1778
 #, c-format
@@ -1359,7 +1412,7 @@ msgid ""
 "\t%s [GNU long option] [option] script-file ...\n"
 msgstr ""
 "Användning:\t%s [GNU lång flagga] [flagga] ...\n"
-"\t%s [GNU lång flagga] [flagga] skriptfil ...\n"
+"\t\t%s [GNU lång flagga] [flagga] skriptfil ...\n"
 
 #: shell.c:1780
 msgid "GNU long options:\n"
@@ -1371,7 +1424,7 @@ msgstr "Skalflaggor:\n"
 
 #: shell.c:1785
 msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n"
-msgstr "\t-irsD eller -c kommando eller -O shopt_option\t\t(endast anrop)\n"
+msgstr "\t-irsD eller -c kommando eller -O shopt_flagga\t\t(bara uppstart)\n"
 
 #: shell.c:1800
 #, c-format
@@ -1381,264 +1434,263 @@ msgstr "\t-%s eller -o flagga\n"
 #: shell.c:1806
 #, c-format
 msgid "Type `%s -c \"help set\"' for more information about shell options.\n"
-msgstr "Skriv \"%s -c \"help set\"\" för mer information om skalflaggor.\n"
+msgstr "Skriv \"%s -c 'help set'\" för mer information om skalflaggor.\n"
 
 #: shell.c:1807
 #, c-format
 msgid "Type `%s -c help' for more information about shell builtin commands.\n"
-msgstr ""
-"Skriv \"%s -c help\" för mer information om skalets inbyggda kommandon.\n"
+msgstr "Skriv \"%s -c help\" för mer information om inbyggda skalkommandon.\n"
 
 #: shell.c:1808
 #, c-format
 msgid "Use the `bashbug' command to report bugs.\n"
-msgstr "Använd kommandot \"bashbug\" för att rapportera buggar.\n"
+msgstr ""
+"Använd kommandot \"bashbug\" för att rapportera fel.\n"
+"Skicka synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
 
 #: sig.c:576
 #, c-format
 msgid "sigprocmask: %d: invalid operation"
-msgstr ""
+msgstr "sigprocmask: %d: ogiltig operation"
 
 #: siglist.c:47
 msgid "Bogus signal"
-msgstr ""
+msgstr "Felatkig signal"
 
 #: siglist.c:50
 msgid "Hangup"
-msgstr ""
+msgstr "Avringd"
 
 #: siglist.c:54
 msgid "Interrupt"
-msgstr ""
+msgstr "Avbruten"
 
 #: siglist.c:58
 msgid "Quit"
-msgstr ""
+msgstr "Lämnad"
 
 #: siglist.c:62
 msgid "Illegal instruction"
-msgstr ""
+msgstr "Otillåten instruktion"
 
 #: siglist.c:66
 msgid "BPT trace/trap"
-msgstr ""
+msgstr "Brytpunkt/spårningsfälla"
 
 #: siglist.c:74
 msgid "ABORT instruction"
-msgstr ""
+msgstr "ABORT-instruktion"
 
 #: siglist.c:78
 msgid "EMT instruction"
-msgstr ""
+msgstr "Emulatorfälla"
 
 #: siglist.c:82
 msgid "Floating point exception"
-msgstr ""
+msgstr "Flyttalsfel"
 
 #: siglist.c:86
 msgid "Killed"
-msgstr ""
+msgstr "Dödad"
 
 #: siglist.c:90
-#, fuzzy
 msgid "Bus error"
-msgstr "syntaxfel"
+msgstr "Bussfel"
 
 #: siglist.c:94
 msgid "Segmentation fault"
-msgstr ""
+msgstr "Segmenteringsfel"
 
 #: siglist.c:98
 msgid "Bad system call"
-msgstr ""
+msgstr "Felaktigt systemanrop"
 
 #: siglist.c:102
 msgid "Broken pipe"
-msgstr ""
+msgstr "Brutet rör"
 
 #: siglist.c:106
 msgid "Alarm clock"
-msgstr ""
+msgstr "Alarmklocka"
 
 #: siglist.c:110
-#, fuzzy
 msgid "Terminated"
-msgstr "Utskrivet"
+msgstr "Avslutat"
 
 #: siglist.c:114
 msgid "Urgent IO condition"
-msgstr ""
+msgstr "Viktigt I/O-tillstånd"
 
 #: siglist.c:118
 msgid "Stopped (signal)"
-msgstr ""
+msgstr "Stoppad (signal)"
 
 #: siglist.c:126
 msgid "Continue"
-msgstr ""
+msgstr "Återupptagen"
 
 #: siglist.c:134
 msgid "Child death or stop"
-msgstr ""
+msgstr "Barn dött eller stoppat"
 
 #: siglist.c:138
 msgid "Stopped (tty input)"
-msgstr ""
+msgstr "Stoppad (terminalläsning)"
 
 #: siglist.c:142
 msgid "Stopped (tty output)"
-msgstr ""
+msgstr "Stoppad (terminalskrivning)"
 
 #: siglist.c:146
 msgid "I/O ready"
-msgstr ""
+msgstr "I/O möjligt"
 
 #: siglist.c:150
 msgid "CPU limit"
-msgstr ""
+msgstr "CPU-gräns"
 
 #: siglist.c:154
 msgid "File limit"
-msgstr ""
+msgstr "Filgräns"
 
 #: siglist.c:158
 msgid "Alarm (virtual)"
-msgstr ""
+msgstr "Alarm (virtuell tid)"
 
 #: siglist.c:162
 msgid "Alarm (profile)"
-msgstr ""
+msgstr "Alarm (profilering)"
 
 #: siglist.c:166
 msgid "Window changed"
-msgstr ""
+msgstr "Ändrat fönster"
 
 #: siglist.c:170
 msgid "Record lock"
-msgstr ""
+msgstr "Postlås"
 
 #: siglist.c:174
 msgid "User signal 1"
-msgstr ""
+msgstr "Användarsignal 1"
 
 #: siglist.c:178
 msgid "User signal 2"
-msgstr ""
+msgstr "Användarsignal 2"
 
 #: siglist.c:182
 msgid "HFT input data pending"
-msgstr ""
+msgstr "HFT-indata väntar"
 
 #: siglist.c:186
 msgid "power failure imminent"
-msgstr ""
+msgstr "strömavbrott omedelbart förestående"
 
 #: siglist.c:190
 msgid "system crash imminent"
-msgstr ""
+msgstr "systemkrash omedelbart förestående"
 
 #: siglist.c:194
 msgid "migrate process to another CPU"
-msgstr ""
+msgstr "migrera process till en annan CPU"
 
 #: siglist.c:198
 msgid "programming error"
-msgstr ""
+msgstr "programmeringsfel"
 
 #: siglist.c:202
 msgid "HFT monitor mode granted"
-msgstr ""
+msgstr "HFT-övervakningsläge givet"
 
 #: siglist.c:206
 msgid "HFT monitor mode retracted"
-msgstr ""
+msgstr "HFT-överakare borttagen"
 
 #: siglist.c:210
 msgid "HFT sound sequence has completed"
-msgstr ""
+msgstr "HFT-ljudsekevens har avslutat"
 
 #: siglist.c:214
 msgid "Information request"
-msgstr ""
+msgstr "Informationsbegäran"
 
 #: siglist.c:222
 msgid "Unknown Signal #"
-msgstr ""
+msgstr "Okänd signal nr "
 
 #: siglist.c:224
 #, c-format
 msgid "Unknown Signal #%d"
-msgstr ""
+msgstr "Okänd signal nr %d"
 
 #: subst.c:1177 subst.c:1298
 #, c-format
 msgid "bad substitution: no closing `%s' in %s"
-msgstr ""
+msgstr "felaktig substitution: ingen avslutande \"%s\" i %s"
 
 #: subst.c:2450
 #, c-format
 msgid "%s: cannot assign list to array member"
-msgstr ""
+msgstr "%s: det går inte att tilldela listor till vektormedlemmar"
 
 #: subst.c:4448 subst.c:4464
 msgid "cannot make pipe for process substitution"
-msgstr ""
+msgstr "det går inte att skapa rör för processubstitution"
 
 #: subst.c:4496
 msgid "cannot make child for process substitution"
-msgstr ""
+msgstr "det går inte att skapa barn för processubstitution"
 
 #: subst.c:4541
 #, c-format
 msgid "cannot open named pipe %s for reading"
-msgstr ""
+msgstr "det går inte att öppna namngivet rör %s för läsning"
 
 #: subst.c:4543
 #, c-format
 msgid "cannot open named pipe %s for writing"
-msgstr ""
+msgstr "det går inte att öppna namngivet rör %s för skrivning"
 
 #: subst.c:4561
 #, c-format
 msgid "cannot duplicate named pipe %s as fd %d"
-msgstr ""
+msgstr "det går inte att duplicera namngivet rör %s som fb %d"
 
 #: subst.c:4757
 msgid "cannot make pipe for command substitution"
-msgstr ""
+msgstr "det går inte att skapa rör för kommandosubstitution"
 
 #: subst.c:4791
 msgid "cannot make child for command substitution"
-msgstr ""
+msgstr "det går inte att skapa barn för kommandosubstitution"
 
 #: subst.c:4808
 msgid "command_substitute: cannot duplicate pipe as fd 1"
-msgstr ""
+msgstr "command_substitute: det går inte att duplicera rör som fb 1"
 
 #: subst.c:5310
-#, fuzzy, c-format
+#, c-format
 msgid "%s: parameter null or not set"
-msgstr "parameter är tom eller inte satt"
+msgstr "%s: parametern tom eller inte satt"
 
 #: subst.c:5600
 #, c-format
 msgid "%s: substring expression < 0"
-msgstr ""
+msgstr "%s: delstränguttryck < 0"
 
 #: subst.c:6646
 #, c-format
 msgid "%s: bad substitution"
-msgstr ""
+msgstr "%s: felaktig substitution"
 
 #: subst.c:6722
 #, c-format
 msgid "$%s: cannot assign in this way"
-msgstr ""
+msgstr "$%s: det går inte att tilldela på detta sätt"
 
 #: subst.c:7441
 #, c-format
 msgid "bad substitution: no closing \"`\" in %s"
-msgstr ""
+msgstr "felaktig ersättning: ingen avslutande \"`\" i %s"
 
 #: subst.c:8314
 #, c-format
@@ -1646,488 +1698,462 @@ msgid "no match: %s"
 msgstr "ingen match: %s"
 
 #: test.c:145
-#, fuzzy
 msgid "argument expected"
-msgstr "(argument förväntades)"
+msgstr "argument förväntades"
 
 #: test.c:154
 #, c-format
 msgid "%s: integer expression expected"
-msgstr ""
+msgstr "%s: heltalsuttryck förväntades"
 
 #: test.c:262
-#, fuzzy
 msgid "`)' expected"
-msgstr "\")\" förväntas\n"
+msgstr "\")\" förväntades"
 
 #: test.c:264
-#, fuzzy, c-format
+#, c-format
 msgid "`)' expected, found %s"
-msgstr "\")\" förväntades, fann %s\n"
+msgstr "\")\" förväntades, fann %s"
 
 #: test.c:279 test.c:688 test.c:691
-#, fuzzy, c-format
+#, c-format
 msgid "%s: unary operator expected"
-msgstr "%s: unär operator förväntas\n"
+msgstr "%s: unär operator förväntades"
 
 #: test.c:444 test.c:731
-#, fuzzy, c-format
+#, c-format
 msgid "%s: binary operator expected"
-msgstr "%s: binär operator förväntas\n"
+msgstr "%s: binär operator förväntades"
 
 #: test.c:806
 msgid "missing `]'"
-msgstr "saknar \"]\""
+msgstr "\"]\" saknas"
 
 #: trap.c:200
 msgid "invalid signal number"
-msgstr ""
+msgstr "ogiltigt signalnummer"
 
 #: trap.c:323
 #, c-format
 msgid "run_pending_traps: bad value in trap_list[%d]: %p"
-msgstr ""
+msgstr "run_pending_traps: felaktigt värde i trap_list[%d]: %p"
 
 #: trap.c:327
 #, c-format
-msgid ""
-"run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
-msgstr ""
+msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"
+msgstr "run_pending_traps: signalhanterare är SIG_DFL, skickar om %d (%s) till mig själv"
 
 #: trap.c:371
 #, c-format
 msgid "trap_handler: bad signal %d"
-msgstr ""
+msgstr "trap_handler: felaktig signal %d"
 
 #: variables.c:354
 #, c-format
 msgid "error importing function definition for `%s'"
-msgstr ""
+msgstr "fel vid import av funktionsdefinition för \"%s\""
 
 #: variables.c:732
 #, c-format
 msgid "shell level (%d) too high, resetting to 1"
-msgstr ""
+msgstr "skalnivå (%d) för hög, återställer till 1"
 
 #: variables.c:1891
 msgid "make_local_variable: no function context at current scope"
-msgstr ""
+msgstr "make_local_variable: ingen funktionskontext i aktuellt sammanhang"
 
 #: variables.c:3120
 msgid "all_local_variables: no function context at current scope"
-msgstr ""
+msgstr "all_local_variables: ingen funktionskontext i aktuellt sammanhang"
 
 #: variables.c:3337 variables.c:3346
 #, c-format
 msgid "invalid character %d in exportstr for %s"
-msgstr ""
+msgstr "ogiltigt tecken %d i exportstr för %s"
 
 #: variables.c:3352
 #, c-format
 msgid "no `=' in exportstr for %s"
-msgstr ""
+msgstr "inget \"=\" i exportstr för %s"
 
 #: variables.c:3787
 msgid "pop_var_context: head of shell_variables not a function context"
-msgstr ""
+msgstr "pop_var_context: huvudet på shell_variables är inte en funktionskontext"
 
 #: variables.c:3800
 msgid "pop_var_context: no global_variables context"
-msgstr ""
+msgstr "pop_var_context: ingen kontext global_variables"
 
 #: variables.c:3874
 msgid "pop_scope: head of shell_variables not a temporary environment scope"
-msgstr ""
+msgstr "pop_scope: huvudet på shell_variables är inte en temporär omgivningsräckvidd"
 
 #: version.c:46
-#, fuzzy
 msgid "Copyright (C) 2008 Free Software Foundation, Inc."
-msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n"
+msgstr "Copyright © 2008 Free Software Foundation, Inc."
 
 #: version.c:47
-msgid ""
-"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
-"html>\n"
-msgstr ""
+msgid "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+msgstr "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.html>\n"
 
 #: version.c:86
 #, c-format
 msgid "GNU bash, version %s (%s)\n"
-msgstr ""
+msgstr "GNU bash, version %s (%s)\n"
 
 #: version.c:91
 #, c-format
 msgid "This is free software; you are free to change and redistribute it.\n"
-msgstr ""
+msgstr "Detta är fri programvara, det får fritt ändra och vidaredistribuera den.\n"
 
 #: version.c:92
 #, c-format
 msgid "There is NO WARRANTY, to the extent permitted by law.\n"
-msgstr ""
+msgstr "Det finns INGEN GARANTI, så långt lagen tillåter.\n"
 
 #: xmalloc.c:92
 #, c-format
 msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "xmalloc: kan inte allokera %lu byte (%lu byte allokerade)"
 
 #: xmalloc.c:94
 #, c-format
 msgid "xmalloc: cannot allocate %lu bytes"
-msgstr ""
+msgstr "xmalloc: kan inte allokera %lu byte"
 
 #: xmalloc.c:114
 #, c-format
 msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "xrealloc: kan inte reallokera %lu byte (%lu byte allokerade)"
 
 #: xmalloc.c:116
 #, c-format
 msgid "xrealloc: cannot allocate %lu bytes"
-msgstr ""
+msgstr "xrealloc: kan inte allokera %lu byte"
 
 #: xmalloc.c:150
 #, c-format
 msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "xmalloc: %s: %d: kan inte allokera %lu byte (%lu byte allokerade)"
 
 #: xmalloc.c:152
 #, c-format
 msgid "xmalloc: %s:%d: cannot allocate %lu bytes"
-msgstr ""
+msgstr "xmalloc: %s: %d: kan inte allokera %lu byte"
 
 #: xmalloc.c:174
 #, c-format
 msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)"
-msgstr ""
+msgstr "xrealloc: %s: %d: kan inte areallokera %lu byte (%lu byte allokerade)"
 
 #: xmalloc.c:176
 #, c-format
 msgid "xrealloc: %s:%d: cannot allocate %lu bytes"
-msgstr ""
+msgstr "xrealloc: %s: %d: kan inte allokera %lu byte"
 
 #: builtins.c:43
 msgid "alias [-p] [name[=value] ... ]"
-msgstr ""
+msgstr "alias [-p] [namn[=värde] ... ]"
 
 #: builtins.c:47
 msgid "unalias [-a] name [name ...]"
-msgstr ""
+msgstr "unalias [-a] namn [namn ...]"
 
 #: builtins.c:51
-msgid ""
-"bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-"
-"x keyseq:shell-command] [keyseq:readline-function or readline-command]"
-msgstr ""
+msgid "bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function or readline-command]"
+msgstr "bind [-lpvsPVS] [-m tangentkarta] [-f filenamn] [-q namn] [-u namn] [-r tangentsekv] [-x tangentsekv:skalkommando] [tangentsekv:readline-funktion eller readline-kommando]"
 
 #: builtins.c:54
 msgid "break [n]"
-msgstr ""
+msgstr "break [n]"
 
 #: builtins.c:56
 msgid "continue [n]"
-msgstr ""
+msgstr "continue [n]"
 
 #: builtins.c:58
 msgid "builtin [shell-builtin [arg ...]]"
-msgstr ""
+msgstr "builtin [skalinbyggd [arg ...]]"
 
 #: builtins.c:61
 msgid "caller [expr]"
-msgstr ""
+msgstr "caller [uttr]"
 
 #: builtins.c:64
 msgid "cd [-L|-P] [dir]"
-msgstr ""
+msgstr "cd [-L|-P] [kat]"
 
 #: builtins.c:66
 msgid "pwd [-LP]"
-msgstr ""
+msgstr "pwd [-LP]"
 
 #: builtins.c:68
 msgid ":"
-msgstr ""
+msgstr ":"
 
 #: builtins.c:70
 msgid "true"
-msgstr ""
+msgstr "true"
 
 #: builtins.c:72
 msgid "false"
-msgstr ""
+msgstr "false"
 
 #: builtins.c:74
 msgid "command [-pVv] command [arg ...]"
-msgstr ""
+msgstr "command [-pVv] kommando [arg ...]"
 
 #: builtins.c:76
 msgid "declare [-aAfFilrtux] [-p] [name[=value] ...]"
-msgstr ""
+msgstr "declare [-aAfFilrtux] [-p] [namn[=värde] ...]"
 
 #: builtins.c:78
 msgid "typeset [-aAfFilrtux] [-p] name[=value] ..."
-msgstr ""
+msgstr "typeset [-aAfFilrtux] [-p] namn[=värde] ..."
 
 #: builtins.c:80
 msgid "local [option] name[=value] ..."
-msgstr ""
+msgstr "local [flagga] namn[=värde] ..."
 
 #: builtins.c:83
 msgid "echo [-neE] [arg ...]"
-msgstr ""
+msgstr "echo [-neE] [arg ...]"
 
 #: builtins.c:87
 msgid "echo [-n] [arg ...]"
-msgstr ""
+msgstr "echo [-n] [arg ...]"
 
 #: builtins.c:90
 msgid "enable [-a] [-dnps] [-f filename] [name ...]"
-msgstr ""
+msgstr "enable [-a] [-dnps] [-f filenamn] [namn ...]"
 
 #: builtins.c:92
 msgid "eval [arg ...]"
-msgstr ""
+msgstr "eval [arg ...]"
 
 #: builtins.c:94
 msgid "getopts optstring name [arg]"
-msgstr ""
+msgstr "getopts flgsträng namn [arg]"
 
 #: builtins.c:96
 msgid "exec [-cl] [-a name] [command [arguments ...]] [redirection ...]"
-msgstr ""
+msgstr "exec [-cl] [-a namn] [kommando [argument ...]] [omdirigering ...]"
 
 #: builtins.c:98
 msgid "exit [n]"
-msgstr ""
+msgstr "exit [n]"
 
 #: builtins.c:100
 msgid "logout [n]"
-msgstr ""
+msgstr "logout [n]"
 
 #: builtins.c:103
 msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"
-msgstr ""
+msgstr "fc [-e rnamn] [-lnr] [första] [sista] eller fc -s [mnst=ers] [kommando]"
 
 #: builtins.c:107
 msgid "fg [job_spec]"
-msgstr ""
+msgstr "fg [jobbspec]"
 
 #: builtins.c:111
 msgid "bg [job_spec ...]"
-msgstr ""
+msgstr "bg [jobbspec ...]"
 
 #: builtins.c:114
 msgid "hash [-lr] [-p pathname] [-dt] [name ...]"
-msgstr ""
+msgstr "hash [-lr] [-p sökväg] [-dt] [namn ...]"
 
 #: builtins.c:117
 msgid "help [-ds] [pattern ...]"
-msgstr ""
+msgstr "help [-ds] [mönster ...]"
 
 #: builtins.c:121
-msgid ""
-"history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg "
-"[arg...]"
-msgstr ""
+msgid "history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]"
+msgstr "history [-c] [-d avstånd] [n] eller history -anrw [filnamn] eller history -ps arg [arg...]"
 
 #: builtins.c:125
 msgid "jobs [-lnprs] [jobspec ...] or jobs -x command [args]"
-msgstr ""
+msgstr "jobs [-lnprs] [jobbspec ...] eller jobs -x kommando [arg]"
 
 #: builtins.c:129
 msgid "disown [-h] [-ar] [jobspec ...]"
-msgstr ""
+msgstr "disown [-h] [-ar] [jobbspec ...]"
 
 #: builtins.c:132
-msgid ""
-"kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l "
-"[sigspec]"
-msgstr ""
+msgid "kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]"
+msgstr "kill [-s sigspec | -n signum | -sigspec] pid | jobbspec ... eller kill -l [sigspec]"
 
 #: builtins.c:134
 msgid "let arg [arg ...]"
-msgstr ""
+msgstr "let arg [arg ...]"
 
 #: builtins.c:136
-msgid ""
-"read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t "
-"timeout] [-u fd] [name ...]"
-msgstr ""
+msgid "read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-p prompt] [-t timeout] [-u fd] [name ...]"
+msgstr "read [-ers] [-a vektor] [-d avgr] [-i text] [-n ntkn] [-p prompt] [-t tidgräns] [-u fb] [namn ...]"
 
 #: builtins.c:138
 msgid "return [n]"
-msgstr ""
+msgstr "return [n]"
 
 #: builtins.c:140
 msgid "set [--abefhkmnptuvxBCHP] [-o option-name] [arg ...]"
-msgstr ""
+msgstr "set [--abefhkmnptuvxBCHP] [-o flaggnamn] [arg ...]"
 
 #: builtins.c:142
 msgid "unset [-f] [-v] [name ...]"
-msgstr ""
+msgstr "unset [-f] [-v] [namn ...]"
 
 #: builtins.c:144
 msgid "export [-fn] [name[=value] ...] or export -p"
-msgstr ""
+msgstr "export [-fn] [namn[=värde] ...] eller export -p"
 
 #: builtins.c:146
 msgid "readonly [-af] [name[=value] ...] or readonly -p"
-msgstr ""
+msgstr "readonly [-af] [namn[=värde] ...] eller readonly -p"
 
 #: builtins.c:148
 msgid "shift [n]"
-msgstr ""
+msgstr "skift [n]"
 
 #: builtins.c:150
 msgid "source filename [arguments]"
-msgstr ""
+msgstr "source filnamn [argument]"
 
 #: builtins.c:152
-#, fuzzy
 msgid ". filename [arguments]"
-msgstr "för många argument"
+msgstr ". filnamn [argument]"
 
 #: builtins.c:155
 msgid "suspend [-f]"
-msgstr ""
+msgstr "suspend [-f]"
 
 #: builtins.c:158
 msgid "test [expr]"
-msgstr ""
+msgstr "test [uttr]"
 
 #: builtins.c:160
 msgid "[ arg... ]"
-msgstr ""
+msgstr "[ arg... ]"
 
 #: builtins.c:162
 msgid "times"
-msgstr ""
+msgstr "times"
 
 #: builtins.c:164
 msgid "trap [-lp] [[arg] signal_spec ...]"
-msgstr ""
+msgstr "trap [-lp] [[arg] signalspec ...]"
 
 #: builtins.c:166
 msgid "type [-afptP] name [name ...]"
-msgstr ""
+msgstr "type [-afptP] namn [namn ...]"
 
 #: builtins.c:169
 msgid "ulimit [-SHacdefilmnpqrstuvx] [limit]"
-msgstr ""
+msgstr "ulimit [-SHacdefilmnpqrstuvx] [gräns]"
 
 #: builtins.c:172
 msgid "umask [-p] [-S] [mode]"
-msgstr ""
+msgstr "umask [-p] [-S] [rättigheter]"
 
 #: builtins.c:175
 msgid "wait [id]"
-msgstr ""
+msgstr "wait [id]"
 
 #: builtins.c:179
 msgid "wait [pid]"
-msgstr ""
+msgstr "wait [pid]"
 
 #: builtins.c:182
 msgid "for NAME [in WORDS ... ] ; do COMMANDS; done"
-msgstr ""
+msgstr "for NAMN [in ORD ... ] ; do KOMMANDON; done"
 
 #: builtins.c:184
 msgid "for (( exp1; exp2; exp3 )); do COMMANDS; done"
-msgstr ""
+msgstr "for (( utr1; utr2; utr3 )); do KOMMANDON; done"
 
 #: builtins.c:186
 msgid "select NAME [in WORDS ... ;] do COMMANDS; done"
-msgstr ""
+msgstr "select NAMN [in ORD ... ;] do KOMMANDON; done"
 
 #: builtins.c:188
 msgid "time [-p] pipeline"
-msgstr ""
+msgstr "time [-p] rör"
 
 #: builtins.c:190
 msgid "case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac"
-msgstr ""
+msgstr "case ORD in [MÖNSTER [| MÖNSTER]...) KOMMANDON ;;]... esac"
 
 #: builtins.c:192
-msgid ""
-"if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else "
-"COMMANDS; ] fi"
-msgstr ""
+msgid "if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi"
+msgstr "if KOMMANDON; then KOMMANDON; [ elif KOMMANDON; then KOMMANDON; ]... [ else KOMMANDON; ] fi"
 
 #: builtins.c:194
 msgid "while COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "while KOMMANDON; do KOMMANDON; done"
 
 #: builtins.c:196
 msgid "until COMMANDS; do COMMANDS; done"
-msgstr ""
+msgstr "until KOMMANDON; do KOMMANDON; done"
 
 #: builtins.c:198
 msgid "function name { COMMANDS ; } or name () { COMMANDS ; }"
-msgstr ""
+msgstr "function namn { KOMMANDON ; } or namn () { KOMMANDON ; }"
 
 #: builtins.c:200
 msgid "{ COMMANDS ; }"
-msgstr ""
+msgstr "{ KOMMANDON ; }"
 
 #: builtins.c:202
 msgid "job_spec [&]"
-msgstr ""
+msgstr "jobbspec [&]"
 
 #: builtins.c:204
-#, fuzzy
 msgid "(( expression ))"
-msgstr "Förväntade uttryck"
+msgstr "(( uttryck ))"
 
 #: builtins.c:206
-#, fuzzy
 msgid "[[ expression ]]"
-msgstr "Förväntade uttryck"
+msgstr "[[ uttryck ]]"
 
 #: builtins.c:208
 msgid "variables - Names and meanings of some shell variables"
-msgstr ""
+msgstr "variabler - Namn och betydelse av några skalvariabler"
 
 #: builtins.c:211
 msgid "pushd [-n] [+N | -N | dir]"
-msgstr ""
+msgstr "pushd [-n] [+N | -N | kat]"
 
 #: builtins.c:215
 msgid "popd [-n] [+N | -N]"
-msgstr ""
+msgstr "popd [-n] [+N | -N]"
 
 #: builtins.c:219
 msgid "dirs [-clpv] [+N] [-N]"
-msgstr ""
+msgstr "dirs [-clpv] [+N] [-N]"
 
 #: builtins.c:222
 msgid "shopt [-pqsu] [-o] [optname ...]"
-msgstr ""
+msgstr "shopt [-pqsu] [-o] [flgnamn ...]"
 
 #: builtins.c:224
 msgid "printf [-v var] format [arguments]"
-msgstr ""
+msgstr "printf [-v var] format [argument]"
 
 #: builtins.c:227
-msgid ""
-"complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W "
-"wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] "
-"[name ...]"
-msgstr ""
+msgid "complete [-abcdefgjksuv] [-pr] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]"
+msgstr "complete [-abcdefgjksuv] [-pr] [-o flagga] [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [namn ...]"
 
 #: builtins.c:231
-msgid ""
-"compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  "
-"[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
-msgstr ""
+msgid "compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]"
+msgstr "compgen [-abcdefgjksuv] [-o flagga]  [-A åtgärd] [-G globmnst] [-W ordlista]  [-F funktion] [-C kommando] [-X filtermnst] [-P prefix] [-S suffix] [ord]"
 
 #: builtins.c:235
 msgid "compopt [-o|+o option] [name ...]"
-msgstr ""
+msgstr "compopt [-o|+o flagga] [namn ...]"
 
 #: builtins.c:238
-msgid ""
-"mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c "
-"quantum] [array]"
-msgstr ""
+msgid "mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]"
+msgstr "mapfile [-n antal] [-O start] [-s antal] [-t] [-u fb] [-C återanrop] [-c kvanta] [vektor]"
 
 #: builtins.c:250
 msgid ""
@@ -2144,10 +2170,24 @@ msgid ""
 "      -p\tPrint all defined aliases in a reusable format\n"
 "    \n"
 "    Exit Status:\n"
-"    alias returns true unless a NAME is supplied for which no alias has "
-"been\n"
+"    alias returns true unless a NAME is supplied for which no alias has been\n"
 "    defined."
 msgstr ""
+"Definiera eller visa alias.\n"
+"    \n"
+"    Utan argumen skriver \"alias\" listan på alias på den återanvändbara formen\n"
+"    \"alias NAMN=VÄRDE\" på standard ut.\n"
+"    \n"
+"    Annars är ett alias definierat för varje NAMN vars VÄRDE är angivet.\n"
+"    Ett avlutande blanktecken i VÄRDE gör att nästa ord undersöks för\n"
+"    aliassubstitution när aliaset expanderas.\n"
+"    \n"
+"    Flaggor:\n"
+"      -p\tSkriv alla definerade alias i på en återanvändbar form\n"
+"    \n"
+"    Slutstatus:\n"
+"    alias returnerar sant om inte ett NAMN ges för vilket inget alias har\n"
+"    definierats."
 
 #: builtins.c:272
 msgid ""
@@ -2158,6 +2198,12 @@ msgid ""
 "    \n"
 "    Return success unless a NAME is not an existing alias."
 msgstr ""
+"Ta bort alla NAMN från listan med definierade alias.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a\tta bort alla aliasdefinitioner.\n"
+"    \n"
+"    Returnerar framgång om inte ett NAMN inte är ett existerande alias."
 
 #: builtins.c:285
 msgid ""
@@ -2171,24 +2217,20 @@ msgid ""
 "    Options:\n"
 "      -m  keymap         Use KEYMAP as the keymap for the duration of this\n"
 "                         command.  Acceptable keymap names are emacs,\n"
-"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-"
-"move,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
 "                         vi-command, and vi-insert.\n"
 "      -l                 List names of functions.\n"
 "      -P                 List function names and bindings.\n"
 "      -p                 List functions and bindings in a form that can be\n"
 "                         reused as input.\n"
-"      -S                 List key sequences that invoke macros and their "
-"values\n"
-"      -s                 List key sequences that invoke macros and their "
-"values\n"
+"      -S                 List key sequences that invoke macros and their values\n"
+"      -s                 List key sequences that invoke macros and their values\n"
 "                         in a form that can be reused as input.\n"
 "      -V                 List variable names and values\n"
 "      -v                 List variable names and values in a form that can\n"
 "                         be reused as input.\n"
 "      -q  function-name  Query about which keys invoke the named function.\n"
-"      -u  function-name  Unbind all keys which are bound to the named "
-"function.\n"
+"      -u  function-name  Unbind all keys which are bound to the named function.\n"
 "      -r  keyseq         Remove the binding for KEYSEQ.\n"
 "      -f  filename       Read key bindings from FILENAME.\n"
 "      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n"
@@ -2197,6 +2239,40 @@ msgid ""
 "    Exit Status:\n"
 "    bind returns 0 unless an unrecognized option is given or an error occurs."
 msgstr ""
+"Sätt Readline-tangentbindningar och -variabler.\n"
+"    \n"
+"    Bind en tangentsekvens till en Readline-funktion eller -makro, eller sätt\n"
+"    en Readline-variabel.  Syntaxen för argument vid sidan om flaggor är\n"
+"    densamma som den i ~/.inputrc, men måste skickas som ett ensamt argument:\n"
+"    t.ex., bind '\"\\C-x\\C-r\": re-read-init-file'.\n"
+"    \n"
+"    Flaggor:\n"
+"      -m  tangentkarta   Använt TANGENTKARTA som tangentkarta under detta\n"
+"                         kommando.  Acceptabla tangentkartenamn är emacs,\n"
+"                         emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,\n"
+"                         vi-command och vi-insert.\n"
+"      -l                 Lista namnen på funktioner.\n"
+"      -P                 List funktionsnamn och bindningar.\n"
+"      -p                 List funktioner och bindningar på ett sätt som kan\n"
+"                         återanvändas som indata.\n"
+"      -S                 Lista tangentsekvenser som anropar makron och deras\n"
+"                         värden.\n"
+"      -s                 Lista tangentskevenser som anropar makron och deras\n"
+"                         värden på ett sätt som kan återanvändas som indata.\n"
+"      -V                 Lista variabelnamn och värden\n"
+"      -v                 Lista variabelnamn och värden på ett sätt som kan\n"
+"                         återanvändas som indata.\n"
+"      -q  funktionsnamn  Fråga efter vilka tangenter som anroper den namngivna\n"
+"                         funktionen\n"
+"      -u  funktionsnamn  Tag bort alla tangenter som är bundna till den\n"
+"                         namngivna funktionen.\n"
+"      -r  tangentsekv    Ta bort bindningen för TANGENTSEKV.\n"
+"      -f  filnamn        Läs tangentbindningar från FILNAMN.\n"
+"      -x  tangentsekv:skalkommando  Görs så att SKALKOMMANDO körs när\n"
+"    \t\t\t\t    TANGENTSEKV skrivs.\n"
+"    \n"
+"    Slutstatus:\n"
+"    bind returnerar 0 om inte en okänd flagga ges eller ett fel inträffar."
 
 #: builtins.c:322
 msgid ""
@@ -2208,6 +2284,13 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
+"Avsluta for-, while- eller until-slinga.\n"
+"    \n"
+"    Avsluta en FOR-, WHILE eller UNTIL-slinga.  Om N anges, avbryt N\n"
+"    omslutande slingor.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returvärdet är 0 förutsatt att N är större eller lika med 1."
 
 #: builtins.c:334
 msgid ""
@@ -2219,6 +2302,13 @@ msgid ""
 "    Exit Status:\n"
 "    The exit status is 0 unless N is not greater than or equal to 1."
 msgstr ""
+"Återuppta for-, while eller until-slinga.\n"
+"    \n"
+"    Återuppta nästa iteration i den omslutande FOR-, WHILE- eller UNTIL-slingan.\n"
+"    Om N anges, återuppta den N:e omslutande slingan.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Slutstatus är 0 förutsatt att N är större eller lika med 1."
 
 #: builtins.c:346
 msgid ""
@@ -2226,13 +2316,22 @@ msgid ""
 "    \n"
 "    Execute SHELL-BUILTIN with arguments ARGs without performing command\n"
 "    lookup.  This is useful when you wish to reimplement a shell builtin\n"
-"    as a shell function, but need to execute the builtin within the "
-"function.\n"
+"    as a shell function, but need to execute the builtin within the function.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is\n"
 "    not a shell builtin.."
 msgstr ""
+"Exekvera en i skalet inbyggd funktion.\n"
+"    \n"
+"    Exekvera SKALINBYGGD med argument ARG utan att utföra kommandouppslagning.\n"
+"    Detta är användbart när du vill implementera om en inbyggd funktion i\n"
+"    skalet som en skalfunktion, men behöver köra den inbyggda funktionen i\n"
+"    skalfunktionen.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar slutstatus från SKALINBYGGD, eller falkst om SKALINBYGGD inte\n"
+"    är inbyggd i skalet."
 
 #: builtins.c:361
 msgid ""
@@ -2249,27 +2348,33 @@ msgid ""
 "    Returns 0 unless the shell is not executing a shell function or EXPR\n"
 "    is invalid."
 msgstr ""
+"Returnera kontexten för det aktuella funktionsanropet.\n"
+"    \n"
+"    Utan UTTR, returneras \"$rad $filnamn\".  Med UTTR, returneras\n"
+"    \"$rad $subrutin $filnamn\".  Denna extra information kan användas för\n"
+"    att ge en stackspårning.\n"
+"    \n"
+"    Värdet på UTTR indikerar hur många anropsramar att gå tillbaka före den\n"
+"    aktuella, toppramen är ram 0.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar 0 om inte skalet inte kör en skalfunktion eller UTTR är\n"
+"    ogiltigt."
 
 #: builtins.c:379
 msgid ""
 "Change the shell working directory.\n"
 "    \n"
-"    Change the current directory to DIR.  The default DIR is the value of "
-"the\n"
+"    Change the current directory to DIR.  The default DIR is the value of the\n"
 "    HOME shell variable.\n"
 "    \n"
-"    The variable CDPATH defines the search path for the directory "
-"containing\n"
-"    DIR.  Alternative directory names in CDPATH are separated by a colon "
-"(:).\n"
-"    A null directory name is the same as the current directory.  If DIR "
-"begins\n"
+"    The variable CDPATH defines the search path for the directory containing\n"
+"    DIR.  Alternative directory names in CDPATH are separated by a colon (:).\n"
+"    A null directory name is the same as the current directory.  If DIR begins\n"
 "    with a slash (/), then CDPATH is not used.\n"
 "    \n"
-"    If the directory is not found, and the shell option `cdable_vars' is "
-"set,\n"
-"    the word is assumed to be  a variable name.  If that variable has a "
-"value,\n"
+"    If the directory is not found, and the shell option `cdable_vars' is set,\n"
+"    the word is assumed to be  a variable name.  If that variable has a value,\n"
 "    its value is used for DIR.\n"
 "    \n"
 "    Options:\n"
@@ -2282,6 +2387,29 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 0 if the directory is changed; non-zero otherwise."
 msgstr ""
+"Ändra skalets arbetskatalog.\n"
+"    \n"
+"    Ändra den aktuella katalogen till KAT.  Standardvärde på KAT är värdet\n"
+"    på skalvariabeln HOME.\n"
+"    \n"
+"    Variabeln CDPATH definierar sökvägen för katalogen som innehåller KAT.\n"
+"    Alternativa katalognamn i CDPATH separeras av ett kolon (:).  Ett tomt\n"
+"    katalognamn är detsamma som aktuell katalog.  Om KAT börjar med ett\n"
+"    snedstreck (/) används inte CDPATH.\n"
+"    \n"
+"    Om katalogen inte kan hittas, och skalvariabeln \"cdable_vars\" är satt,\n"
+"    antas ordet vara ett variabelnamn.  Om den variabeln har ett värde\n"
+"    används dess värde för KAT.\n"
+"    \n"
+"    Flaggor:\n"
+"        -L\tframtvinga att symboliska länkar följs\n"
+"        -P\tanvänd den fysiska katalogstrukturen utan att följa\n"
+"    \tsymboliska länkar\n"
+"    \n"
+"    Standardvärde är att följa symboliska längar, som om \"-L\" vore angivet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar 0 om katalogen är ändrad; skilt från noll annars."
 
 #: builtins.c:407
 msgid ""
@@ -2298,6 +2426,18 @@ msgid ""
 "    Returns 0 unless an invalid option is given or the current directory\n"
 "    cannot be read."
 msgstr ""
+"Skriv namnet på den aktuella arbetskatalogen.\n"
+"    \n"
+"    Flaggor:\n"
+"      -L\tskriv värdet på $PWD om det är namnet på den aktuella\n"
+"    \tarbetskatalogen\n"
+"      -P\tskriv den fysiska katalogen, utan några symboliska länkar\n"
+"    \n"
+"    Som standard beter sig \"pwd\" som om \"-L\" vore angivet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar 0 om inte en ogiltig flagga anges eller den aktuella katalogen\n"
+"    inte kan läsas."
 
 #: builtins.c:424
 msgid ""
@@ -2308,6 +2448,12 @@ msgid ""
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
+"Tomt kommando.\n"
+"    \n"
+"    Ingen effekt.  Kommandot gör ingenting.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Lyckas alltid."
 
 #: builtins.c:435
 msgid ""
@@ -2316,6 +2462,10 @@ msgid ""
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
+"Returnerar ett lyckat resultat.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Lyckas alltid."
 
 #: builtins.c:444
 msgid ""
@@ -2324,14 +2474,17 @@ msgid ""
 "    Exit Status:\n"
 "    Always fails."
 msgstr ""
+"Returnera ett misslyckat resultat.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Misslyckas alltid."
 
 #: builtins.c:453
 msgid ""
 "Execute a simple command or display information about commands.\n"
 "    \n"
 "    Runs COMMAND with ARGS suppressing  shell function lookup, or display\n"
-"    information about the specified COMMANDs.  Can be used to invoke "
-"commands\n"
+"    information about the specified COMMANDs.  Can be used to invoke commands\n"
 "    on disk when a function with the same name exists.\n"
 "    \n"
 "    Options:\n"
@@ -2343,6 +2496,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns exit status of COMMAND, or failure if COMMAND is not found."
 msgstr ""
+"Exekvera ett enkelt kommando eller visa information om kommandon.\n"
+"    \n"
+"    Kör KOMMANDO med ARGument och utelämna uppslagning av skalfunktioner,\n"
+"    eller visa information om det angivna KOMMANDOt.  Kan användas för att\n"
+"    anropa kommandon på disk när det finns en funktion med samma namn.\n"
+"    \n"
+"    Flaggor:\n"
+"      -p\tanvänd ett standardvärde på PATH som är garanterat att hitta\n"
+"    \talla standardverktygen\n"
+"      -v\tskriv en beskrivning av KOMMANDO liknande den inbyggda \"type\"\n"
+"      -V\tskriv en mer utförlig beskrivning om varje KOMMANDO\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar slutstatus från KOMMANDO, eller misslyckande om KOMMANDO inte\n"
+"    finns."
 
 #: builtins.c:472
 msgid ""
@@ -2372,13 +2540,43 @@ msgid ""
 "    Variables with the integer attribute have arithmetic evaluation (see\n"
 "    the `let' command) performed when the variable is assigned a value.\n"
 "    \n"
-"    When used in a function, `declare' makes NAMEs local, as with the "
-"`local'\n"
+"    When used in a function, `declare' makes NAMEs local, as with the `local'\n"
 "    command.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Sätt variabelvärden och -attribut.\n"
+"    \n"
+"    Deklarera variabler och ge dem attribut.  Om inget NAMN anges, visa\n"
+"    attributen och värdena på alla variabler.\n"
+"    \n"
+"    Flaggor:\n"
+"      -f\tbegränsa åtgärden till att visa funktionsnamn och -definitioner\n"
+"      -F\tbegränsa visandet till endast funktionsnamn (plus radnummer\n"
+"    \toch källkodsfil vid felsökning)\n"
+"      -p\tvisa attributen och värden på varje NAMN\n"
+"    \n"
+"    Flaggor som sätter attribut:\n"
+"      -a\tför att göra NAMN till indexerade vektorer (om det stöds)\n"
+"      -A\tför att göra NAMN till associativa vektorer (om det stöds)\n"
+"      -i\tför att ge NAMN attributet \"heltal\"\n"
+"      -l\tför att konvertera NAMN till gemena vid tilldelning\n"
+"      -r\tför att göra NAMN endast läsbart\n"
+"      -t\tför att ge NAMN attributet \"spåra\"\n"
+"      -u\tför att konvertera NAMN till versaler vid tilldelning\n"
+"      -x\tför att exportera NAMN\n"
+"    \n"
+"    Användning av \"+\" istället för \"-\" slår av det angivna attributet.\n"
+"    \n"
+"    För variabler med attributet heltal utförs atitmetisk beräkning (se\n"
+"    kommandot \"let\") när variabeln tilldelas ett värde.\n"
+"    \n"
+"    Vid användning i en funktion gör \"declare\" NAMN lokala, som med kommandot\n"
+"    \"local\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
 #: builtins.c:508
 msgid ""
@@ -2386,6 +2584,9 @@ msgid ""
 "    \n"
 "    Obsolete.  See `help declare'."
 msgstr ""
+"Sätt variabelvärden och -attribut.\n"
+"    \n"
+"    Föråldrat.  Se \"help declare\"."
 
 #: builtins.c:516
 msgid ""
@@ -2401,6 +2602,17 @@ msgid ""
 "    Returns success unless an invalid option is supplied, an error occurs,\n"
 "    or the shell is not executing a function."
 msgstr ""
+"Definiera lokala variabler.\n"
+"    \n"
+"    Skapa en lokal variabel kallad NAMN, och ge den VÄRDE.  FLAGGA kan\n"
+"    vara alla flaggor som accepteras av \"declare\".\n"
+"    \n"
+"    Lokala variabler kan endast användas i en funktion; de är synliga endast\n"
+"    för funktionen de definieras i och dess barn.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges, ett fel inträffar\n"
+"    eller skalet inte exekverar en funktion."
 
 #: builtins.c:533
 msgid ""
@@ -2432,6 +2644,33 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
+"Skriv argument på standard ut.\n"
+"    \n"
+"    Visa ARGumenten på standard ut följt av en nyrad.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tlägg inte till en nyrad\n"
+"      -e\taktivera tolkning av nedanstående specialsekvenser\n"
+"      -E\tundertryck uttryckligen tolkning av specialsekvenser\n"
+"    \n"
+"    \"echo\" tolkar följande bakstrecksekvenser:\n"
+"      \\a\talarm (klocka)\n"
+"      \\b\tbacksteg\n"
+"      \\c\tundertryck följande utdata\n"
+"      \\e\tescape-tecknet\n"
+"      \\f\tsidmatning\n"
+"      \\n\tnyrad\n"
+"      \\r\tvagnretur\n"
+"      \\t\thorisontell tabulator\n"
+"      \\v\tvertikal tabulator\n"
+"      \\\\\tbakstreck\n"
+"      \\0nnn\ttecknet vars ASCII-kod är NNN (oktalt).  NNN kan vara\n"
+"    \t0 till 3 oktala siffror\n"
+"      \\xHH\tdet åttabitarstecken vars värde är HH (hexadecimalt).  HH\n"
+"    \tkan vara en eller två hexadecimala siffror\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte ett skrivfel inträffar."
 
 #: builtins.c:567
 msgid ""
@@ -2445,6 +2684,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless a write error occurs."
 msgstr ""
+"Skriv argument på standard ut.\n"
+"    \n"
+"    Visa ARGumenten på standard ut följt av en nyrad.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tlägg inte till en nyrad\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte ett skrivfel inträffar."
 
 #: builtins.c:582
 msgid ""
@@ -2472,18 +2720,51 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not a shell builtin or an error occurs."
 msgstr ""
+"Aktivera och avaktivera inbyggda kommandon i skalet.\n"
+"    \n"
+"    Aktiverar och avaktiverar inbyggda skalkommandon.  Avaktivering låter\n"
+"    dig exekvera diskkommandon som har samma namn som ett inbyggt\n"
+"    skalkommando utan att använda en fullständig sökväg.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a\tskriv en lista av inbyggda kommando och visa om de är\n"
+"    \taktiverade eller ej\n"
+"      -n\tavaktivera varje NAMN eller visa en lista av avaktiverade\n"
+"    \tkommandon\n"
+"      -p\tskriv listan av inbyggda kommandon på en återanvändningsbar\n"
+"    \tform\n"
+"      -s\tskriv endast namnen på Posix \"special\"-inbyggda\n"
+"    \n"
+"    Flaggor som styr dynamisk inläsning:\n"
+"      -f\tLäs int inbyggt NAMN från en delad objektfil FILNAMN\n"
+"      -d\tTa bort en inbyggd inläst med -f\n"
+"    \n"
+"    Utan flaggor aktiveras varje NAMN.\n"
+"    \n"
+"    För att använda den \"test\" som finns i sökvägen istället för den i\n"
+"    skalet inbyggda versionen, skriv \"enable -n test\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte NAMN inte är inbyggd i skalet eller ett fel\n"
+"    inträffar."
 
 #: builtins.c:610
 msgid ""
 "Execute arguments as a shell command.\n"
 "    \n"
-"    Combine ARGs into a single string, use the result as input to the "
-"shell,\n"
+"    Combine ARGs into a single string, use the result as input to the shell,\n"
 "    and execute the resulting commands.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns exit status of command or success if command is null."
 msgstr ""
+"Exekvera argument som ett skalkommando.\n"
+"    \n"
+"    Kombinera ARGument till en enda sträng, och använd resultatet som indata\n"
+"    till skalet och exekvera de resulterande kommandona.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar slutstatus av kommandot eller framgång om kommandot är tomt."
 
 #: builtins.c:622
 msgid ""
@@ -2525,14 +2806,49 @@ msgid ""
 "    Returns success if an option is found; fails if the end of options is\n"
 "    encountered or an error occurs."
 msgstr ""
+"Tolka flaggargument.\n"
+"    \n"
+"    Getopts används av skalprocedurer för att tolka positionsparametrar\n"
+"    som flaggor.\n"
+"    \n"
+"    FLGSTRÄNG innehåller de flaggtecken som skall kännas igen.  Om ett\n"
+"    tecken följs av ett kolon förväntas flaggan ha ett argument, som\n"
+"    skall separeras från den med blanktecken.\n"
+"    \n"
+"    Varje gång det anropas kommer getopts placera nästa flagga i skal-\n"
+"    variabeln $namn, initiera namnet om det inte redan finns, och\n"
+"    index på nästa argument läggas i skalvariabeln OPTIND.  OPTIND\n"
+"    initieras till 1 varje gång skalet eller ett skalskrpt startas.  När\n"
+"    en flagga behöver ett argument placerar getopts det argumentet i\n"
+"    skalvariabeln OPTARG.\n"
+"    \n"
+"    getopts rapporterar fel på ett av två sätt.  Om det första tecknet\n"
+"    i OPTSTRING är ett kolon använder getopts tyst felrapportering.  I\n"
+"    detta läge skrivs inget felmeddelande ut.  Om en ogiltig flagga ses\n"
+"    placerar getopts det funna flaggtecknet i OPTARG.  Om ett nödvändigt\n"
+"    argument inte finns placerar getopts ett \":\" i NAMN och sätter OPTARG\n"
+"    till det funna flaggtecknet.  Om getopts inte är i tyst läge och en\n"
+"    felaktig flagga upptäcks placerar getopts \"?\" i NAMN och tar bort\n"
+"    OPTARG.  Om ett nödvändigt argument inte hittas placeras ett \"?\" i\n"
+"    NAMN, OPTARG tas bort och ett felmeddelande skrivs.\n"
+"    \n"
+"    Om skalvariabeln OPTERR har värdet 0 avaktiverar getopts utskriften\n"
+"    av felmeddelanden, även om det första tecknet i FLGSTRÄNG inte är ett\n"
+"    kolon.  OPTERR har värdet 1 som standard.\n"
+"    \n"
+"    Getopts tolkar normalt positionsparametrarna ($0 - $9), men om fler\n"
+"    argument ges tolkas de istället.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om en flagga hittas, misslyckas om slutet av\n"
+"    flaggorna nås eller ett fel inträffar."
 
 #: builtins.c:664
 msgid ""
 "Replace the shell with the given command.\n"
 "    \n"
 "    Execute COMMAND, replacing this shell with the specified program.\n"
-"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not "
-"specified,\n"
+"    ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,\n"
 "    any redirections take effect in the current shell.\n"
 "    \n"
 "    Options:\n"
@@ -2540,14 +2856,29 @@ msgid ""
 "      -c\t\texecute COMMAND with an empty environment\n"
 "      -l\t\tplace a dash in the zeroth argument to COMMAND\n"
 "    \n"
-"    If the command cannot be executed, a non-interactive shell exits, "
-"unless\n"
+"    If the command cannot be executed, a non-interactive shell exits, unless\n"
 "    the shell option `execfail' is set.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless COMMAND is not found or a redirection error "
-"occurs."
+"    Returns success unless COMMAND is not found or a redirection error occurs."
 msgstr ""
+"Ersätt skalet med det givna kommandot.\n"
+"    \n"
+"    Exekvera KOMMANDO genom att ersätta detta skal med det angivna programmet.\n"
+"    ARGUMENT blir argument till KOMMANDO.  Om KOMMANDO inte anges kommer\n"
+"    eventuella omdirigeringar att gälla för det aktuella skalet.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a namn\tskicka NAMN som det nollte argumentet till KOMMANDO\n"
+"      -c\texekvera KOMMANDO med en tom miljö\n"
+"      -l\tplacera ett streck i det nollte argumentet till KOMMANDO\n"
+"    \n"
+"    Om kommandot inte kan exekveras avslutar ett ickeinteraktivt skal, om\n"
+"    inte skalflaggan \"execfail\" är satt.\n"
+"    \n"
+"    Sluttatus:\n"
+"    Returnerar framgång om inte KOMMANDO inte finns eller ett fel vid\n"
+"    omdirigering inträffar."
 
 #: builtins.c:685
 msgid ""
@@ -2556,29 +2887,34 @@ msgid ""
 "    Exits the shell with a status of N.  If N is omitted, the exit status\n"
 "    is that of the last command executed."
 msgstr ""
+"Avsluta skalet.\n"
+"    \n"
+"    Avslutar skalet med statusen N.  Om N utelämnas är slutstatusen den\n"
+"    hos det sist körda kommandot."
 
 #: builtins.c:694
 msgid ""
 "Exit a login shell.\n"
 "    \n"
-"    Exits a login shell with exit status N.  Returns an error if not "
-"executed\n"
+"    Exits a login shell with exit status N.  Returns an error if not executed\n"
 "    in a login shell."
 msgstr ""
+"Avsluta ett inloggningsskal.\n"
+"    \n"
+"    Avslutar ett inloggningsskal med slutstatus N.  Returnerar ett fel om\n"
+"    det inte körs i ett inloggningsskal."
 
 #: builtins.c:704
 msgid ""
 "Display or execute commands from the history list.\n"
 "    \n"
-"    fc is used to list or edit and re-execute commands from the history "
-"list.\n"
+"    fc is used to list or edit and re-execute commands from the history list.\n"
 "    FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"
 "    string, which means the most recent command beginning with that\n"
 "    string.\n"
 "    \n"
 "    Options:\n"
-"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then "
-"EDITOR,\n"
+"      -e ENAME\tselect which editor to use.  Default is FCEDIT, then EDITOR,\n"
 "    \t\tthen vi\n"
 "      -l \tlist lines instead of editing\n"
 "      -n\tomit line numbers when listing\n"
@@ -2592,9 +2928,32 @@ msgid ""
 "    the last command.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success or status of executed command; non-zero if an error "
-"occurs."
+"    Returns success or status of executed command; non-zero if an error occurs."
 msgstr ""
+"Visa eller kör kommandon från historielistan.\n"
+"    \n"
+"    fc används för att lista eller redigera och köra om kommandon från\n"
+"    historielistan.  FÖRSTA och SISTA kan vara tal som anger intervallet,\n"
+"    eller så kan FÖRSTA vara en sträng, som betyder det senaste kommandot\n"
+"    som börjar med den strängen.\n"
+"    \n"
+"    Flaggor:\n"
+"      -e RNAMN\tvälj vilken redigerar som skall användas.  Standard är\n"
+"    \t\tFCEDIT, sedan EDITOR, sedan vi\n"
+"      -l \tlista rader istället för att redigera\n"
+"      -n\tutelämna radnummer vid listningen\n"
+"      -r\treversera ordningen på raderna (nyaste listas först)\n"
+"    \n"
+"    Med formatet \"fc -s [mnst=ers ...] [kommando]\" körs KOMMANDO om efter\n"
+"    att substitutionen GAMMALT=NYTT har utförts.\n"
+"    \n"
+"    Ett användbart alias att använda med detta är r=\"fc -s\", så att skriva\n"
+"    \"r cc\" kör senaste kommandot som börjar med \"cc\" och att skriva \"r\" kör\n"
+"    om senaste kommandot.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång eller status på exekverat kommando, skilt från noll\n"
+"    om ett fel inträffar."
 
 #: builtins.c:734
 msgid ""
@@ -2607,28 +2966,43 @@ msgid ""
 "    Exit Status:\n"
 "    Status of command placed in foreground, or failure if an error occurs."
 msgstr ""
+"Flytta ett jobb till förgrunden.\n"
+"    \n"
+"    Placera jobbet som identifieras av JOBBSPEC i förgrunden, och gör det\n"
+"    till det aktuella jobbet.  Om ingen JOBBSPEC finns används skalets\n"
+"    begrep om det aktuella jobbet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Status på kommandot som placerades i förgrunden, eller misslyckande om\n"
+"    ett fel inträffar."
 
 #: builtins.c:749
 msgid ""
 "Move jobs to the background.\n"
 "    \n"
-"    Place the jobs identified by each JOB_SPEC in the background, as if "
-"they\n"
-"    had been started with `&'.  If JOB_SPEC is not present, the shell's "
-"notion\n"
+"    Place the jobs identified by each JOB_SPEC in the background, as if they\n"
+"    had been started with `&'.  If JOB_SPEC is not present, the shell's notion\n"
 "    of the current job is used.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Flytta jobb till bakgrunden.\n"
+"    \n"
+"    Placera jobben som idintifieras av varje JOBBSPEC i bakgrunden som om de\n"
+"    hade startats med \"&\".  Om ingen JOBBSPEC finns används skalets begrepp\n"
+"    om det aktuella jobbet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
+"    inträffar."
 
 #: builtins.c:763
 msgid ""
 "Remember or display program locations.\n"
 "    \n"
 "    Determine and remember the full pathname of each command NAME.  If\n"
-"    no arguments are given, information about remembered commands is "
-"displayed.\n"
+"    no arguments are given, information about remembered commands is displayed.\n"
 "    \n"
 "    Options:\n"
 "      -d\t\tforget the remembered location of each NAME\n"
@@ -2645,6 +3019,24 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless NAME is not found or an invalid option is given."
 msgstr ""
+"Kom ihåg eller visa programlägen.\n"
+"    \n"
+"    Bestäm och kom ihåg den fullständiga sökvägen till varje kommando NAMN.\n"
+"    Om inget argument ges visas information om kommandon som finns i minnet.\n"
+"    \n"
+"    Flaggor:\n"
+"      -d\t\tglöm platsen i minnet för varje NAMN\n"
+"      -l\t\tvisa i ett format som kan återanvändas som indata\n"
+"      -p sökväg \tanvänd SÖKVÄG som den fullständiga sökvägen till NAMN\n"
+"      -r\t\tglömm alla platser i minnet\n"
+"      -t\t\tskriv platsen i minnet för varje NAMN, med NAMN före\n"
+"    \t\tvarje motsvarande plats om flera NAMN ges\n"
+"    Argument:\n"
+"      NAMN\t\tVarje NAMN söks efter i $PATH och läggs till i listan\n"
+"    \t\tav kommandon i minnet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte NAMN inte hittas eller en ogiltig flagga ges."
 
 #: builtins.c:788
 msgid ""
@@ -2664,9 +3056,25 @@ msgid ""
 "      PATTERN\tPattern specifiying a help topic\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless PATTERN is not found or an invalid option is "
-"given."
+"    Returns success unless PATTERN is not found or an invalid option is given."
 msgstr ""
+"Visa information om inbyggda kommandon.\n"
+"    \n"
+"    Visar korta sammanfattningar om inbyggda kommandon.  Om MÖNSTER anges\n"
+"    ges detaljerad hjälp om alla kommandon som matchar MÖNSTER, annars skrivs\n"
+"    listan med hjälpämnen.\n"
+"    \n"
+"    Flaggor:\n"
+"      -d\tvisa en kort beskrivning för varje ämne\n"
+"      -m\tvisa användning i låtsas-mansideformat\n"
+"      -s\tvisa endast ett kort användningsformat för varje ämne som\n"
+"    \tmatchar MÖNSTER\n"
+"    \n"
+"    Argument:\n"
+"      MÖNSTER\tMönster som anger hjälpämnen\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte MÖNSTER inte finns eller en ogiltig flagga ges."
 
 #: builtins.c:812
 msgid ""
@@ -2695,12 +3103,39 @@ msgid ""
 "    \n"
 "    If the $HISTTIMEFORMAT variable is set and not null, its value is used\n"
 "    as a format string for strftime(3) to print the time stamp associated\n"
-"    with each displayed history entry.  No time stamps are printed "
-"otherwise.\n"
+"    with each displayed history entry.  No time stamps are printed otherwise.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
+"Visa eller hantera historielistan.\n"
+"    \n"
+"    Visa historielistan med radnummer, inled varje modifierad post med en\n"
+"    \"*\".  Ett argument N listar endast de N senaste posterna.\n"
+"    \n"
+"    Flaggor:\n"
+"      -c\tnollställ historielistan genom att ta bort alla poster\n"
+"      -d avstånd\tta bort historieposten på avstånd AVSTÅND\n"
+"    \n"
+"      -a\tlägg till historierader från denna session till historiefilen\n"
+"      -n\tläs alla historierader som inte redan lästs från historiefilen\n"
+"      -r\tläs historiefilen och lägg till innehållet till historielistan\n"
+"      -w\tskriv den aktuella historien till hstoriefilen och lägg till\n"
+"    \tdem till historielistan\n"
+"    \n"
+"      -p\tutför historieexpansion på varje ARG och visa resultatet utan\n"
+"    \tatt lagra det i historielistan\n"
+"      -s\tlägg till ARG till historielistan som en ensam post\n"
+"    \n"
+"    Om FILENAMN anges används det som historiefil.  Annars, om $HISTFILE har\n"
+"    ett värde används det, annars ~/.bash_history.\n"
+"    \n"
+"    Om variabeln $HISTTIMEFORMAT är satt och inte tom används dess värde som\n"
+"    en formatsträng till strftime(3) för att skriva tidsstämplar tillhörande\n"
+"    varje visad historiepost.  Inga tidsstämplar skrivs annars.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
 #: builtins.c:848
 msgid ""
@@ -2725,6 +3160,25 @@ msgid ""
 "    Returns success unless an invalid option is given or an error occurs.\n"
 "    If -x is used, returns the exit status of COMMAND."
 msgstr ""
+"Visa status på jobb.\n"
+"    \n"
+"    Lista de aktiva jobben.  JOBBSPEC begränsar utdata till det jobbet.\n"
+"    Utan flaggor visas status på alla aktiva jobb.\n"
+"    \n"
+"    Flaggor:\n"
+"      -l\tlistar process-id:n utöver den normala informationen\n"
+"      -n\tlistar endast processer som har ändrat status sedan senaste\n"
+"    \tnotifiering\n"
+"      -p\tlistar endast process-id:n\n"
+"      -r\tbegränsar utdata till körande jobb\n"
+"      -s\tbegränsar utdata till stoppade jobb\n"
+"    \n"
+"    Om -x anges körs KOMMANDO efter alla jobbspecifikationer som förekommer\n"
+"    i ARG har ersatts med process-id:t för det jobbets processgruppledare.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar.\n"
+"    Om -x används returneras slutstatus från KOMMANDO."
 
 #: builtins.c:875
 msgid ""
@@ -2742,6 +3196,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option or JOBSPEC is given."
 msgstr ""
+"Ta bort jobb från det aktuella skalet.\n"
+"    \n"
+"    Tar bort varje JOBBSPEC-argument från tabellen över aktiva jobb.  Utan\n"
+"    någon JOBBSPEC använder skalet sitt begrepp om det aktuella jobbet.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a\tta bort alla jobb om JOBBSPEC inte anges\n"
+"      -h\tmärk varje JOBBSPEC så att SIGHUP inte skickas till jobbet om\n"
+"    \tskalet tar emot en SIGHUP\n"
+"      -r\ttar bara bort körande jobb\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga eller JOBBSPEC ges."
 
 #: builtins.c:894
 msgid ""
@@ -2764,6 +3231,25 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or an error occurs."
 msgstr ""
+"Skicka en signal till ett jobb.\n"
+"    \n"
+"    Skicka processerna som identifieras av PID eller JOBBSPEC signalerna som\n"
+"    namnges av SIGSPEC eller SIGNUM.  Om varken SIGSPEC eller SIGNUM är\n"
+"    angivna antas SIGTERM.\n"
+"    \n"
+"    Flaggor:\n"
+"      -s sig\tSIG är ett signalnamn\n"
+"      -n sig\tSIG är ett signalnummer\n"
+"      -l\tlista signalnamnen.  Om argument följer \"-l\" antas de vara\n"
+"    \tsignalnummer som namn skall listas för\n"
+"    \n"
+"    Kill är inbyggt i skalet av två skäl: det tillåter att jobb-id:n används\n"
+"    istället för process-id:n, och det tillåter processer att dödas om gränsen\n"
+"    för hur många processer du får skapa har nåtts.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga angivits eller ett fel\n"
+"    inträffar."
 
 #: builtins.c:917
 msgid ""
@@ -2772,8 +3258,7 @@ msgid ""
 "    Evaluate each ARG as an arithmetic expression.  Evaluation is done in\n"
 "    fixed-width integers with no check for overflow, though division by 0\n"
 "    is trapped and flagged as an error.  The following list of operators is\n"
-"    grouped into levels of equal-precedence operators.  The levels are "
-"listed\n"
+"    grouped into levels of equal-precedence operators.  The levels are listed\n"
 "    in order of decreasing precedence.\n"
 "    \n"
 "    \tid++, id--\tvariable post-increment, post-decrement\n"
@@ -2809,22 +3294,58 @@ msgid ""
 "    Exit Status:\n"
 "    If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise.."
 msgstr ""
+"Evaluera aritmetiska uttryck.\n"
+"    \n"
+"    Evaluera varje ARG som ett aritmetiskt uttryck.  Evaluering görs i heltal\n"
+"    med fix bredd utan kontroll av spill, fast division med 0 fångas och\n"
+"    flaggas som ett fel.  Följande lista över operatorer är grupperad i\n"
+"    nivåer av operatorer med samma precedens.  Nivåerna är listade i ordning\n"
+"    med sjunkande precedens.\n"
+"    \n"
+"    \tid++, id--\tpostinkrementering av variabel, postdekrementering\n"
+"    \t++id, --id\tpreinkrementering av variabel, predekrementering\n"
+"    \t-, +\t\tunärt minus, plus\n"
+"    \t!, ~\t\tlogisk och bitvis negering\n"
+"    \t**\t\texponentiatiering\n"
+"    \t*, /, %\t\tmultiplikation, division, rest\n"
+"    \t+, -\t\taddition, subtraktion\n"
+"    \t<<, >>\t\tvänster och höger bitvisa skift\n"
+"    \t<=, >=, <, >\tjämförelse\n"
+"    \t==, !=\t\tlikhet, olikhet\n"
+"    \t&\t\tbitvis OCH\n"
+"    \t^\t\tbitvis EXKLUSIVT ELLER\n"
+"    \t|\t\tbitvis ELLER\n"
+"    \t&&\t\tlogiskt OCH\n"
+"    \t||\t\tlogiskt ELLER\n"
+"    \tuttf ? uttr : uttr\n"
+"    \t\t\tvillkorlig operator\n"
+"    \t=, *=, /=, %=,\n"
+"    \t+=, -=, <<=, >>=,\n"
+"    \t&=, ^=, |=\ttilldelning\n"
+"    \n"
+"    Skalvariabler är tillåtna som operander.  namnet på variablerna ersätts\n"
+"    med deras värde (omformat till ett heltal med fix bredd) inom ett\n"
+"    uttryck.  Variablerna behöver inte ha sina heltalsattribut påslagna för\n"
+"    att användas i ett uttryck.\n"
+"    \n"
+"    Operatorer beräknas i precedensordning.  Delutryck i parenteser beräknas\n"
+"    först och kan åsidosätta precedensreglerna ovan.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Om det sista ARG beräknas till 0, returnerar let 1; let returnerar 0 annars."
 
 #: builtins.c:962
 msgid ""
 "Read a line from the standard input and split it into fields.\n"
 "    \n"
 "    Reads a single line from the standard input, or from file descriptor FD\n"
-"    if the -u option is supplied.  The line is split into fields as with "
-"word\n"
+"    if the -u option is supplied.  The line is split into fields as with word\n"
 "    splitting, and the first word is assigned to the first NAME, the second\n"
 "    word to the second NAME, and so on, with any leftover words assigned to\n"
-"    the last NAME.  Only the characters found in $IFS are recognized as "
-"word\n"
+"    the last NAME.  Only the characters found in $IFS are recognized as word\n"
 "    delimiters.\n"
 "    \n"
-"    If no NAMEs are supplied, the line read is stored in the REPLY "
-"variable.\n"
+"    If no NAMEs are supplied, the line read is stored in the REPLY variable.\n"
 "    \n"
 "    Options:\n"
 "      -a array\tassign the words read to sequential indices of the array\n"
@@ -2839,8 +3360,7 @@ msgid ""
 "    \t\tattempting to read\n"
 "      -r\t\tdo not allow backslashes to escape any characters\n"
 "      -s\t\tdo not echo input coming from a terminal\n"
-"      -t timeout\ttime out and return failure if a complete line of input "
-"is\n"
+"      -t timeout\ttime out and return failure if a complete line of input is\n"
 "    \t\tnot read withint TIMEOUT seconds.  The value of the TMOUT\n"
 "    \t\tvariable is the default timeout.  TIMEOUT may be a\n"
 "    \t\tfractional number.  The exit status is greater than 128 if\n"
@@ -2848,10 +3368,42 @@ msgid ""
 "      -u fd\t\tread from file descriptor FD instead of the standard input\n"
 "    \n"
 "    Exit Status:\n"
-"    The return code is zero, unless end-of-file is encountered, read times "
-"out,\n"
+"    The return code is zero, unless end-of-file is encountered, read times out,\n"
 "    or an invalid file descriptor is supplied as the argument to -u."
 msgstr ""
+"Läs en rad från standard in och dela upp den i fält.\n"
+"    \n"
+"    Läser en ensam rad från standard in, eller från filbeskrivare FB om\n"
+"    flaggan -u ges.  Raden delas upp i fält som vid orduppdelning, och första\n"
+"    ordet tilldelas det första NAMNet, andra ordet till det andra NAMNet, och\n"
+"    så vidare, med eventuella återstående ord tilldelade till det sista\n"
+"    NAMNet.  Endast tecknen som finns i $IFS används som ordavgränsare.\n"
+"    \n"
+"    Om inga NAMN anges, lagras den inlästa raden i variabeln REPLY.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a vektor\ttilldela de inlästa orden till sekvensiella index i vektor-\n"
+"    \t\tvariabeln VEKTOR, med start från noll\n"
+"      -d avgr\tfortsätt tills det första tecknet i AVGR lästs, istället för\n"
+"    \t\tnyrad\n"
+"      -e\t\tanvänd Readline för att få in raden i ett interaktivt\n"
+"    \t\t\tskal\n"
+"      -i text\tAnvänd TEXT som starttext för Readline\n"
+"      -n ntkn\treturnera efter att ha läst NTKN tecken istället för att\n"
+"    \t\tvänta på en nyrad\n"
+"      -p prompt\tskriv ut strängen PROMPT utan en avslutande nyrad före\n"
+"    \t\tförsök att läsa\n"
+"      -r\t\ttillåt inte bakstreck att skydda några tecken\n"
+"      -s\t\teka inte indata som kommer från terminalen\n"
+"      -t tidgräns\tsluta vänta och returnera misslyckande om inte en\n"
+"    \t\tkomplett rad lästs inom TIDSGRÄNS sekunder.  Värdet på variabeln\n"
+"    \t\tTMOUT är standardvärdet på tidsgränsen.  TIDSGRÄNS kan vara ett\n"
+"    \t\tbråktal.  Slutstatus är större än 128 om tidsgränsen överskrids\n"
+"      -u fb\t\tläs från filbeskrivare FB istället för standard in\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returkoden är noll om inte filslut nås, läsningens tidsgräns överskrids\n"
+"    eller en ogiltig filbeskrivare ges som argument till -u."
 
 #: builtins.c:1001
 msgid ""
@@ -2864,6 +3416,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns N, or failure if the shell is not executing a function or script."
 msgstr ""
+"Returnera från en skalfunktion.\n"
+"    \n"
+"    Får en funktion eller ett källinläst skript att avsluta med returvärdet\n"
+"    som anges av N.  Om N utelämnas är returstatus den hos det sista\n"
+"    kommandot som körts i funktionen eller skriptet.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar N, eller misslyckande om skalet inte kör en funktion eller\n"
+"    skript."
 
 #: builtins.c:1014
 msgid ""
@@ -2908,8 +3469,7 @@ msgid ""
 "              physical     same as -P\n"
 "              pipefail     the return value of a pipeline is the status of\n"
 "                           the last command to exit with a non-zero status,\n"
-"                           or zero if no command exited with a non-zero "
-"status\n"
+"                           or zero if no command exited with a non-zero status\n"
 "              posix        change the behavior of bash where the default\n"
 "                           operation differs from the Posix standard to\n"
 "                           match the standard\n"
@@ -2946,6 +3506,85 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given."
 msgstr ""
+"Sätt eller ta bort satta värden på skalflaggor och positionsparametrar.\n"
+"    \n"
+"    Ändra värdet på skalattribut och positionsparametrar, eller visa namnen\n"
+"    och värdena på skalvariabler.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a  Markera variabler om ändras eller skapas för export.\n"
+"      -b  Rapportera om avlutade jobb omedelbart.\n"
+"      -e  Avsluta omedelbart om ett kommando avslutar med nollskild status.\n"
+"      -f  Avaktivera filnamnsgenerering (globbing).\n"
+"      -h  Kom ihåg platsen för kommandon när de slås upp.\n"
+"      -k  Alla tilldelningsargument placeras i miljön för ett kommando, inte\n"
+"          bara de som föregår kommandonamnet.\n"
+"      -m  Jobbstyrning är aktiverat.\n"
+"      -n  Läs kommandon men exekvera dem inte.\n"
+"      -o flaggnamn\n"
+"          Sätt variabeln som motsvarar flaggnamn:\n"
+"              allexport    samma som -a\n"
+"              braceexpand  samma som -B\n"
+"              emacs        använd radredigeringsgränssnitt i emacsstil\n"
+"              errexit      samma som -e\n"
+"              errtrace     samma som -E\n"
+"              functrace    samma som -T\n"
+"              hashall      samma som -h\n"
+"              histexpand   samma som -H\n"
+"              history      aktivera kommandohistoria\n"
+"              ignoreeof    skalet kommer inte avsluta vid läsning av filslut\n"
+"              interactive-comments\n"
+"                           tillåt kommentarer att förekomma i interaktiva\n"
+"                           kommandon\n"
+"              keyword      samma som -k\n"
+"              monitor      samma som -m\n"
+"              noclobber    samma som -C\n"
+"              noexec       samma som -n\n"
+"              noglob       samma som -f\n"
+"              nolog        accepteras men ignoreras för närvarande\n"
+"              notify       samma som -b\n"
+"              nounset      samma som -u\n"
+"              onecmd       samma som -t\n"
+"              physical     samma som -P\n"
+"              pipefail     returvärdet av ett rör är status på det sista\n"
+"                           kommandot som avslutas med en status skild från\n"
+"                           noll, eller nol om inget kommando avslutas med\n"
+"                           en status skild från noll\n"
+"              posix        ändra beteendet på bash där standardbeteendet\n"
+"                           skiljer sig från Posixstandarden till att stämma\n"
+"                           med standarden\n"
+"              privileged   samma som -p\n"
+"              verbose      samma som -v\n"
+"              vi           använd radredigeringsgränssnitt i vi-stil\n"
+"              xtrace       samma som -x\n"
+"      -p  Slås på när den verkliga och effektiva användar-id:n inte stämmer\n"
+"          överens.  Avaktiverar bearbetning av $ENV-filen och import av\n"
+"          skalfunktioner.  Att slå av denna flagga får den effektiva uid och\n"
+"          gid att sättas till den verkliga uid och gid.\n"
+"      -t  Avsluta efter att ha läst och exekverat ett kommando.\n"
+"      -u  Behandla osatta variabler som fel vid substitution.\n"
+"      -v  Skriv skalindatarader allteftersom de läses.\n"
+"      -x  Skriv kommandon och deras argument allteftersom de körs.\n"
+"      -B  skalet kommer utföra klammerexpansion\n"
+"      -C  Om satt tillåts inte existerande normala filer att skrivas över\n"
+"          av omdirigering av utdata.\n"
+"      -E  Om satt ärvs ERR-fällan av skalfunktioner.\n"
+"      -H  Aktivera historiesubstituion i !-stil.  Denna flagga är på som\n"
+"          standard när skalet är interaktivt.\n"
+"      -P  Om satt följs inte symboliska länkar när kommandon såsom cd körs\n"
+"          som ändrar aktuell katalog.\n"
+"      -T  Om satt ärvs DEBUG-fällan av skalfunktioner.\n"
+"      -   Tilldela eventuella återstående argument till positionsparametrar.\n"
+"          Flaggorna -x och -v slås av.\n"
+"    \n"
+"    Användning av + istället för - får dessa flaggor att slås av.  Flaggorna\n"
+"    kan även användas vid uppstart av skalet.  Den aktuella uppsättningen\n"
+"    flaggor finns i $-.  De återstående n ARGumenten är positionsparametrar\n"
+"    och tilldelas, i ordning, till $1, $2, .. $n.  Om inga ARGument ges\n"
+"    skrivs alla skalvariabler ut.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges."
 
 #: builtins.c:1096
 msgid ""
@@ -2957,8 +3596,7 @@ msgid ""
 "      -f\ttreat each NAME as a shell function\n"
 "      -v\ttreat each NAME as a shell variable\n"
 "    \n"
-"    Without options, unset first tries to unset a variable, and if that "
-"fails,\n"
+"    Without options, unset first tries to unset a variable, and if that fails,\n"
 "    tries to unset a function.\n"
 "    \n"
 "    Some variables cannot be unset; also see `readonly'.\n"
@@ -2966,14 +3604,29 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or a NAME is read-only."
 msgstr ""
+"Ta bort värden och attribut på skalvariabler och -funktioner.\n"
+"    \n"
+"    Tag för varje NAMN bort motsvarande variabel eller funktion.\n"
+"    \n"
+"    Flaggor:\n"
+"      -f\tbehandla varje NAMN som en skalfunktion\n"
+"      -v\tbehandla varje NAMN som en skalvariabel\n"
+"    \n"
+"    Utan flaggor försöker unset först att ta bort en variabel, och, om det\n"
+"    misslyckas, försöker den ta bort en funktion.\n"
+"    \n"
+"    Några variabler kan inte tas bort, se även \"readonly\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller NAMN endast är\n"
+"    läsbart."
 
 #: builtins.c:1116
 msgid ""
 "Set export attribute for shell variables.\n"
 "    \n"
 "    Marks each NAME for automatic export to the environment of subsequently\n"
-"    executed commands.  If VALUE is supplied, assign VALUE before "
-"exporting.\n"
+"    executed commands.  If VALUE is supplied, assign VALUE before exporting.\n"
 "    \n"
 "    Options:\n"
 "      -f\trefer to shell functions\n"
@@ -2985,6 +3638,20 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Sätt exportattribut på skalvariabler.\n"
+"    \n"
+"    Markerar varje NAMN för automatisk export till miljön för senare\n"
+"    exekverade kommandon.  Om VÄRDE anges tilldelas VÄRDE före export.\n"
+"    \n"
+"    Flaggor:\n"
+"      -f\treferera till skalfunktioner\n"
+"      -n\tta bort exportegenskapen från varje NAMN\n"
+"      -p\tvisa en lista av alla exporterade variabler och funktioner\n"
+"    \n"
+"    Ett argument \"--\" avslutar vidare flaggbearbetning.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
 #: builtins.c:1135
 msgid ""
@@ -3005,6 +3672,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is given or NAME is invalid."
 msgstr ""
+"Markera skalvariabler som oföränderliga.\n"
+"    \n"
+"    Markera varje NAMN som oföränderligt.  Värdena på dessa NAMN kan inte\n"
+"    ändras av senare tilldelningar.  Om VÄRDE anges tilldelas VÄRDE före\n"
+"    variabeln markeras oföränderlig.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a\treferera till indexerade vektorvariabler\n"
+"      -A\trefererar till assoicativa vektorvariabler\n"
+"      -f\treferara till skalfunktioner\n"
+"      -p\tvisa en lista över alla oföränderliga variabler och funktioner\n"
+"    \n"
+"    Ett argument \"--\" avslutar vidare flaggbearbetning.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller NAMN är ogiltigt."
 
 #: builtins.c:1156
 msgid ""
@@ -3016,6 +3699,13 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless N is negative or greater than $#."
 msgstr ""
+"Skifta positionsparametrar.\n"
+"    \n"
+"    Byt namn på positionsparametrarna $N+1,$N+2 ... till $1,$2 ...  Om N inte\n"
+"    anges antas det vara 1.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte N är negativt eller större än $#."
 
 #: builtins.c:1168 builtins.c:1183
 msgid ""
@@ -3030,6 +3720,15 @@ msgid ""
 "    Returns the status of the last command executed in FILENAME; fails if\n"
 "    FILENAME cannot be read."
 msgstr ""
+"Exekvera kommandon från en fil i det aktuella skalet.\n"
+"    \n"
+"    Läs och exekvera kommandon från FILNAMN i det aktuella skalet.  Posterna\n"
+"    i $PATH används för att hitta katalogen som innehåller FILNAMN.  Om\n"
+"    något ARGUMENT ges blir de positionsparametrar när FILNAMN körs.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar status på det sista kommandot som körs i FILNAMN, misslyckas\n"
+"    om FILNAMN inte kan läsas."
 
 #: builtins.c:1199
 msgid ""
@@ -3044,6 +3743,17 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless job control is not enabled or an error occurs."
 msgstr ""
+"Suspendera skalexekvering.\n"
+"    \n"
+"    Suspendera exekveringen av detta skal tills det får en SIGCONT-signal.\n"
+"    Om det inte framtvingas kan inloggningsskal inte suspenderas.\n"
+"    \n"
+"    Flaggor:\n"
+"      -f\tframtvinga suspendering, även om skalet är ett inloggningsskal\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte jobbstyrning inte är aktiverat eller ett fel\n"
+"    inträffar."
 
 #: builtins.c:1215
 msgid ""
@@ -3076,8 +3786,7 @@ msgid ""
 "      -x FILE        True if the file is executable by you.\n"
 "      -O FILE        True if the file is effectively owned by you.\n"
 "      -G FILE        True if the file is effectively owned by your group.\n"
-"      -N FILE        True if the file has been modified since it was last "
-"read.\n"
+"      -N FILE        True if the file has been modified since it was last read.\n"
 "    \n"
 "      FILE1 -nt FILE2  True if file1 is newer than file2 (according to\n"
 "                       modification date).\n"
@@ -3098,8 +3807,7 @@ msgid ""
 "      STRING1 != STRING2\n"
 "                     True if the strings are not equal.\n"
 "      STRING1 < STRING2\n"
-"                     True if STRING1 sorts before STRING2 "
-"lexicographically.\n"
+"                     True if STRING1 sorts before STRING2 lexicographically.\n"
 "      STRING1 > STRING2\n"
 "                     True if STRING1 sorts after STRING2 lexicographically.\n"
 "    \n"
@@ -3121,6 +3829,77 @@ msgid ""
 "    Returns success if EXPR evaluates to true; fails if EXPR evaluates to\n"
 "    false or an invalid argument is given."
 msgstr ""
+"Beräkna villkorligt uttryck.\n"
+"    \n"
+"    Avslutar med en status på 0 (sant) eller 1 (falskt) beroende på\n"
+"    beräkningen av UTTR.  Uttryck kan vara unära eller binära.  Unära\n"
+"    uttryck är ofta till för att undersöka status för en fil.  Det finns\n"
+"    stränoperatorer också, och numeriska jämförelseoperatoer.\n"
+"    \n"
+"    Filoperatorer:\n"
+"    \n"
+"      -a FIL         Sant om filen finns.\n"
+"      -b FIL         Sant om filen är en blockspecialfil.\n"
+"      -c FIL         Sant om filen är en teckenspecialfil.\n"
+"      -d FIL         Sant om filen är en katalog.\n"
+"      -e FIL         Sant om filen finns.\n"
+"      -f FIL         Sant om filen finns, och är en normal fil.\n"
+"      -g FIL         Sant om filen är sätt-gruppid.\n"
+"      -h FIL         Sant om filen är en symbolisk länk.\n"
+"      -L FIL         Sant om filen är en symbolisk länk.\n"
+"      -k FIL         Sant om filen har \"fastbiten\" satt.\n"
+"      -p FIL         Sant om filen är ett namngivet rör.\n"
+"      -r FIL         Sant om filen kan läsas av dig.\n"
+"      -s FIL         Sant om filen finns och inte är tom.\n"
+"      -S FIL         Sant om filen är ett uttag (socket).\n"
+"      -t FB          Sant om FB är öppnad mot en terminal.\n"
+"      -u FIL         Sant om filen är sätt-användarid.\n"
+"      -w FIL         Sant om filen är skrivbar av dig.\n"
+"      -x FIL         Sant om filen är exekverbar av dig.\n"
+"      -O FIL         Sant om filen ägs av din verksamma användare.\n"
+"      -G FIL         Sant om filen ägs av din verksamma grupp.\n"
+"      -N FIL         Sant om filen har ändrats sedan den sist lästes.\n"
+"    \n"
+"      FIL1 -nt FIL2  Sant om fil1 är nyare än fil2 (enligt\n"
+"                     modifieringsdatum).\n"
+"    \n"
+"      FIL1 -ot FIL2  Sant om fil1 är äldre än fil2.\n"
+"    \n"
+"      FIL1 -ef FIL2  Sant om fil1 är en hård länk till fil2.\n"
+"    \n"
+"    Strängoperatorer:\n"
+"    \n"
+"      -z STRÄNG      Sant om strängen är tom.\n"
+"    \n"
+"      -n STRÄNG\n"
+"         STRÄNG      Sant om strängen inte är tom.\n"
+"    \n"
+"      STRÄNG1 = STRÄNG2\n"
+"                     Sant om strängarna är lika.\n"
+"      STRÄNG1 != STRÄNG2\n"
+"                     Sant om strängarna inte är lika.\n"
+"      STRÄNG1 < STRÄNG2\n"
+"                     Sant om STRÄNG1 kommer före STRÄNG2 lexikografiskt.\n"
+"      STRÄNG1 > STRÄNG2\n"
+"                     Sant om STRÄNG1 kommer efter STRÄNG2 lexikografiskt.\n"
+"    \n"
+"    Andra operatorer:\n"
+"    \n"
+"      -o FLAGGA      Sant om skalflaggan FLAGGA är aktiv.\n"
+"      ! UTTR         Sant om uttr är falskt.\n"
+"      UTTR1 -a UTTR2 Sant om både uttr1 OCH uttr2 är sanna.\n"
+"      UTTR1 -o UTTR2 Sant om antingen uttr1 ELLER uttr2 är sanna.\n"
+"    \n"
+"      arg1 OP arg2   Aritmetiska test.  OP är en av -eq, -ne,\n"
+"                     -lt, -le, -gt eller -ge.\n"
+"    \n"
+"    Aritmetiska binära operatorer returnerar sant om ARG1 är lika-med,\n"
+"    inte-lika-med, mindre-än, mindre-än-eller-lika-med, större-än eller\n"
+"    större-än-eller-lika-med ARG2.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om UTTR beräknas till sant.  Misslyckas ifall UTTR\n"
+"    beräknas till falskt eller ett ogiltigt argument ges."
 
 #: builtins.c:1291
 msgid ""
@@ -3129,25 +3908,34 @@ msgid ""
 "    This is a synonym for the \"test\" builtin, but the last argument must\n"
 "    be a literal `]', to match the opening `['."
 msgstr ""
+"Beräkna villkorligt uttryck.\n"
+"    \n"
+"    Detta är en synonym till det inbyggda \"test\", men det sista argumentet\n"
+"    måste vara en bokstavlig \"]\", för att matcha den inledande \"[\"."
 
 #: builtins.c:1300
 msgid ""
 "Display process times.\n"
 "    \n"
-"    Prints the accumulated user and system times for the shell and all of "
-"its\n"
+"    Prints the accumulated user and system times for the shell and all of its\n"
 "    child processes.\n"
 "    \n"
 "    Exit Status:\n"
 "    Always succeeds."
 msgstr ""
+"Visa processtider.\n"
+"    \n"
+"    Skriver ut den sammanlagda användar- och systemtiden för skalet och alla\n"
+"    dess barnprocesser.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Lyckas alltid."
 
 #: builtins.c:1312
 msgid ""
 "Trap signals and other events.\n"
 "    \n"
-"    Defines and activates handlers to be run when the shell receives "
-"signals\n"
+"    Defines and activates handlers to be run when the shell receives signals\n"
 "    or other conditions.\n"
 "    \n"
 "    ARG is a command to be read and executed when the shell receives the\n"
@@ -3156,27 +3944,51 @@ msgid ""
 "    value.  If ARG is the null string each SIGNAL_SPEC is ignored by the\n"
 "    shell and by the commands it invokes.\n"
 "    \n"
-"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  "
-"If\n"
+"    If a SIGNAL_SPEC is EXIT (0) ARG is executed on exit from the shell.  If\n"
 "    a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.\n"
 "    \n"
-"    If no arguments are supplied, trap prints the list of commands "
-"associated\n"
+"    If no arguments are supplied, trap prints the list of commands associated\n"
 "    with each signal.\n"
 "    \n"
 "    Options:\n"
 "      -l\tprint a list of signal names and their corresponding numbers\n"
 "      -p\tdisplay the trap commands associated with each SIGNAL_SPEC\n"
 "    \n"
-"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal "
-"number.\n"
+"    Each SIGNAL_SPEC is either a signal name in <signal.h> or a signal number.\n"
 "    Signal names are case insensitive and the SIG prefix is optional.  A\n"
 "    signal may be sent to the shell with \"kill -signal $$\".\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless a SIGSPEC is invalid or an invalid option is "
-"given."
+"    Returns success unless a SIGSPEC is invalid or an invalid option is given."
 msgstr ""
+"Fånga signaler och andra händelser.\n"
+"    \n"
+"    Definierar och aktiverar hanterare som skall köras när skalet tar emot\n"
+"    signaler eller andra omständigheter.\n"
+"    \n"
+"    ARG är ett kommando som skall läsas och exekveras när skalet tar emot\n"
+"    signalen SIGNALSPEC.  Om ARG inte anges (och en ensam SIGNALSPEC ges)\n"
+"    eller \"-\" återställs varje angiven signal till sitt orginalvärde.  Om\n"
+"    ARG är den tomma strängen ingoreras varje SIGNALSPEC av skalet och av\n"
+"    kommandon det startar.\n"
+"    \n"
+"    Om en SIGNALSPEC är EXIT (0) exekveras ARG vid avslut från skalet.  Om\n"
+"    en SIGNALSPEC är DEBUG exekveras ARG före varje enkelt kommando.\n"
+"    \n"
+"    Om inga argument ges skriver trap listan av kommandon som hör till varje\n"
+"    signal.\n"
+"    \n"
+"    Flaggor:\n"
+"      -l\tskriv en lista av signalnamn och deras motsvarande nummer\n"
+"      -p\tvisa trap-kommandona associerade med varje SIGNALSPEC\n"
+"    \n"
+"    Varje SIGNALSPEC är antingen ett signalnamn i <signal.h> eller ett\n"
+"    signalnummer.  Signalnamn är skiftlägesokänsliga och SIG-prefixet är\n"
+"    frivilligt.  En signal kan skickas till skalet med \"kill -signal $$\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en SIGSPEC är ogiltig eller en ogiltig flagga\n"
+"    ges."
 
 #: builtins.c:1344
 msgid ""
@@ -3204,16 +4016,39 @@ msgid ""
 "      NAME\tCommand name to be interpreted.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success if all of the NAMEs are found; fails if any are not "
-"found."
-msgstr ""
+"    Returns success if all of the NAMEs are found; fails if any are not found."
+msgstr ""
+"Visa information om kommandotyper.\n"
+"    \n"
+"    Indikera för varje NAMN hur det skulle tolkats om det användes som ett\n"
+"    kommandonamn.\n"
+"    \n"
+"    Flaggor:\n"
+"      -a\tvisa alla platser som innehåller ett körbart program med\n"
+"    \tnamnet NAMN, inklusive alias, inbyggda och funktioner, om och endast\n"
+"    \tom flaggan \"-p\" inte också används\n"
+"      -f\tutelämna uppslagning av skalfunktioner\n"
+"      -P\tframtvinga en PATH-sökning för varje NAMN, även om det är ett\n"
+"    \talias, inbyggt eller funktion, och returnera namnet på diskfilen som\n"
+"    \tskulle blivit exekverad\n"
+"      -p\treturnerar antingen namnet på diskfilen som skulle exekverats,\n"
+"    \teller ingenting om \"type -t NAMN\" inte skulle returnerat \"file\".\n"
+"      -t\tskriv ut ett ensamt ord som är ett av \"alias\", \"keyword\",\n"
+"    \t\"function\", \"builtin\", \"file\" eller \"\", om NAMN är ett alias, ett\n"
+"    \treserverat ord i skalet, en skalfunktion, inbyggt i skalet, en diskfil\n"
+"    \trespektive inte finns\n"
+"    \n"
+"    Argument:\n"
+"      NAMN\tKomandonamn som skall tolkas.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om alla NAMNen finns, misslyckas om något inte finns."
 
 #: builtins.c:1375
 msgid ""
 "Modify shell resource limits.\n"
 "    \n"
-"    Provides control over the resources available to the shell and "
-"processes\n"
+"    Provides control over the resources available to the shell and processes\n"
 "    it creates, on systems that allow such control.\n"
 "    \n"
 "    Options:\n"
@@ -3251,6 +4086,45 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Modifiera skalresursgränser.\n"
+"    \n"
+"    Ger kontroll över resurserna som är tillgängliga till skalet och processer\n"
+"    det skapar, på system som möjliggör sådan styrning.\n"
+"    \n"
+"    Flaggor:\n"
+"      -S\tanvänd den \"mjuka\" resursgränsen\n"
+"      -H\tanvänd den \"hårda\" resursgränsen\n"
+"      -a\talla aktuella gränser rapporteras\n"
+"      -b\tstorleken på uttagsbuffertar\n"
+"      -c\tden maximala storleken på minnesutskrifter som skapas\n"
+"      -d\tden maximala storleken på en process datasegmen\n"
+"      -e\tden maximala schemaläggningsprioriteten (\"nice\")\n"
+"      -f\tden maximala storleken på filer som skrivs av skalet och dess\n"
+"        \tbarn\n"
+"      -i\tdet maximala antalet väntande signaler\n"
+"      -l\tden maximala storleken en process kan låsa i minnet\n"
+"      -m\tden maximala residenta mängdstorleken\n"
+"      -n\tdet maximala antalet öppna filbeskrivare\n"
+"      -p\trörbuffertstorleken\n"
+"      -q\tdet maximala antalet byte i POSIX-meddelandeköer\n"
+"      -r\tden maximala realtidsschemaläggningsprioriteten\n"
+"      -s\tden maximala stackstorleken\n"
+"      -t\tden maximala mängden cpu-tid i sekunder\n"
+"      -u\tdet maximala antalet användarprocesser\n"
+"      -v\tstorleken på det virtuella minnet\n"
+"      -x\tdet maximala antalet fillås\n"
+"    \n"
+"    Om GRÄNS anges är det ett nytt värde för den specificerade resursen; de\n"
+"    speciella GRÄNS-värdena \"soft\", \"hard\" och \"unlimited\" står för den\n"
+"    aktuella mjuka gränsen, den aktuella hårda grånsen respektive inge gräns.\n"
+"    Annars skrivs det aktuella värdet på den specificerade resursen.  Om\n"
+"    ingen flagga ges antas -f.\n"
+"    \n"
+"    Värden är i 1024-bytesteg, utom för -t som är i sekunder, -p som är i steg\n"
+"    på 512 byte och -u som är ett antal processer utan någon skalning.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga anges eller ett fel inträffar."
 
 #: builtins.c:1420
 msgid ""
@@ -3269,6 +4143,22 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless MODE is invalid or an invalid option is given."
 msgstr ""
+"Visa eller sätt filrättighetsmask.\n"
+"    \n"
+"    Sätter användarens filskapningsmask till RÄTTIGHETER.  Om RÄTTIGHETER\n"
+"    utelämnas skrivs det aktuella värdet på masken.\n"
+"    \n"
+"    Om RÄTTIGHETER börjar med en siffra tolkas det som ett oktalt tal, annars\n"
+"    är det en symbolisk rättighetssträng som den som tas av chmod(1).\n"
+"    \n"
+"    Flaggor:\n"
+"      -p\tom RÄTTIGHETER utelämnas, skriv ut i en form som kan\n"
+"        \tåteranvändas som indata\n"
+"      -S\tgör utmatningen symbolisk, annars används oktala tal\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte RÄTTIGHETER är ogiltig eller en ogiltig flagga\n"
+"    ges."
 
 #: builtins.c:1440
 msgid ""
@@ -3277,15 +4167,24 @@ msgid ""
 "    Waits for the process identified by ID, which may be a process ID or a\n"
 "    job specification, and reports its termination status.  If ID is not\n"
 "    given, waits for all currently active child processes, and the return\n"
-"    status is zero.  If ID is a a job specification, waits for all "
-"processes\n"
+"    status is zero.  If ID is a a job specification, waits for all processes\n"
 "    in the job's pipeline.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
+"Vänta på att jobb blir färdiga och returnerar slutstatus.\n"
+"    \n"
+"    Väntar på processen som identifieras av ID, som kan vara en process-id\n"
+"    eller en jobbspecifikation, och rapportera dess avslutningsstatus.  Om\n"
+"    ID inte ges, vänta på alla nu körande barnprocesser, och returstatus är\n"
+"    noll.  Om ID är en jobbspecifikation, vänta på alla processer i det\n"
+"    jobbets rör.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
+"    flagga ges."
 
 #: builtins.c:1458
 msgid ""
@@ -3296,10 +4195,18 @@ msgid ""
 "    and the return code is zero.  PID must be a process ID.\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns the status of ID; fails if ID is invalid or an invalid option "
-"is\n"
+"    Returns the status of ID; fails if ID is invalid or an invalid option is\n"
 "    given."
 msgstr ""
+"Vänta på att en process blir färdig och returnerar slutstatus.\n"
+"    \n"
+"    Väntar på den angivna processen och rapportera dess avslutningsstatus.  Om\n"
+"    PID inte ges, vänta på alla nu körande barnprocesser, och returstatus är\n"
+"    noll.  PID måste vara en process-id.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar status på ID, misslyckas ifall ID är ogiltig eller en ogiltig\n"
+"    flagga ges."
 
 #: builtins.c:1473
 msgid ""
@@ -3313,6 +4220,15 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Exekvera kommandon för varje medlem i en lista.\n"
+"    \n"
+"    \"for\"-slingan exekverar en sekvens av kommandon för varje medlem i en\n"
+"    lista av element.  Om \"in ORD ...;\" inte är med antas 'in \"$@\"'.  För\n"
+"    varje element i ORD sätts NAMN till det elementet, och KOMMANDON\n"
+"    exekveras.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar status för det sist exekverade kommandot."
 
 #: builtins.c:1487
 msgid ""
@@ -3330,6 +4246,19 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Aritmetisk for-slinga.\n"
+"    \n"
+"    Likvärdigt med\n"
+"    \t(( UTR1 ))\n"
+"    \twhile (( UTR2 )); do\n"
+"    \t\tKOMMANDON\n"
+"    \t\t(( UTR3 ))\n"
+"    \tdone\n"
+"    UTR1, UTR2 och UTR3 är aritmetiska uttryck.  Om något uttryck utelämnas\n"
+"    beter det sig som om det beräknas till 1.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar statusen från det sist exekverade kommandot."
 
 #: builtins.c:1505
 msgid ""
@@ -3350,6 +4279,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Välj ord från en lista och exekvera kommandon.\n"
+"    \n"
+"    ORD expanderas och genererar en lista med ord.  Mängden av\n"
+"    expanderade ord skrivs på standard fel, vart och ett föregånget\n"
+"    av ett tal.  Om `in ORD' inte är med antas 'in \"$@\"'.  Prompten\n"
+"    PS3 skrivs sedan och en rad läses från standard in.  OM raden\n"
+"    består av numret motsvarande en av de visade orden sätts NAMN\n"
+"    till det ordet.  Om raden är tom visas ORD och prompten igen.\n"
+"    Om filslut läses avslutar kommandot.  Alla andra värden får NAMN\n"
+"    att bli satt till tomt.  Den inlästa raden sparas i variabeln\n"
+"    REPLY.  KOMMANDON exekveras efter varje val tills ett\n"
+"    break-kommando exekveras.\n"
+"    \n"
+"    Sluttatus:\n"
+"    Returnerar statusen från det sist exekverade kommandot."
 
 #: builtins.c:1526
 msgid ""
@@ -3366,6 +4310,19 @@ msgid ""
 "    Exit Status:\n"
 "    The return status is the return status of PIPELINE."
 msgstr ""
+"Rapportera tiden som används av rörets exekvering.\n"
+"    \n"
+"    Exekvera RÖR och skriv en sammanfattning av den verkliga tiden,\n"
+"    användar-CPU-tiden och system-CPU-tiden som använts för att exekvera\n"
+"    RÖRet när det avslutar.\n"
+"    \n"
+"    Flaggor:\n"
+"      -p\tskriv tidssammanfattningen i det portabla Posix-formatet\n"
+"    \n"
+"    Värdet på variablen TIMEFORMAT används som utmatningsformat.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returstatusen är returstatusen från RÖR."
 
 #: builtins.c:1543
 msgid ""
@@ -3377,27 +4334,41 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Exekvera kommandon baserat på mönstermatchning.\n"
+"    \n"
+"    Välj att exekvera KOMMANDON baserat på om ORD matchar MÖNSTER.  Ett\n"
+"    \"|\" används för att separera flera mönster.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar statusen från det sist exekverade kommandot."
 
 #: builtins.c:1555
 msgid ""
 "Execute commands based on conditional.\n"
 "    \n"
-"    The `if COMMANDS' list is executed.  If its exit status is zero, then "
-"the\n"
-"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list "
-"is\n"
+"    The `if COMMANDS' list is executed.  If its exit status is zero, then the\n"
+"    `then COMMANDS' list is executed.  Otherwise, each `elif COMMANDS' list is\n"
 "    executed in turn, and if its exit status is zero, the corresponding\n"
-"    `then COMMANDS' list is executed and the if command completes.  "
-"Otherwise,\n"
-"    the `else COMMANDS' list is executed, if present.  The exit status of "
-"the\n"
-"    entire construct is the exit status of the last command executed, or "
-"zero\n"
+"    `then COMMANDS' list is executed and the if command completes.  Otherwise,\n"
+"    the `else COMMANDS' list is executed, if present.  The exit status of the\n"
+"    entire construct is the exit status of the last command executed, or zero\n"
 "    if no condition tested true.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Exekvera kommndon baserat på ett villkor.\n"
+"    \n"
+"    Listan \"if KOMMANDON\" exekveras.  Om des slutstatus är noll så exekveras\n"
+"    listan \"then COMMANDS\".  Annars exekveras varje lista \"elif KOMMANDON\"\n"
+"    i tur och ordning, och om dess slutstatus är noll exekveras motsvarande\n"
+"    lista \"then COMMANDS\" och if-kommandot avslutar.  Annars exekveras listan\n"
+"    \"else COMMANDS\" om den finns.  Slutstatus av hela konstruktionen är\n"
+"    slutstatusen på det sist exekverade kommandot, eller noll om inget\n"
+"    villkor returnerade sant.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar status från det sist exekverade kommandot."
 
 #: builtins.c:1572
 msgid ""
@@ -3409,6 +4380,13 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Exekvera kommandon så länge ett test lyckas.\n"
+"    \n"
+"    Expandera och exekvera KOMMANDON så länge det sista kommandont i\n"
+"    \"while\"-KOMMANDONa har en sluttstatus på noll.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar statusen från det sist exekverade kommandot."
 
 #: builtins.c:1584
 msgid ""
@@ -3420,20 +4398,35 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Exekvera kommandon så länge ett test inte lyckas.\n"
+"    \n"
+"    Expandera och exekvera KOMMANDON så länge det sista kommandot i\n"
+"    \"until\"-KOMMANDONa har en slutstatus som inte är noll.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar statusen från det sist exekverade kommandot."
 
 #: builtins.c:1596
 msgid ""
 "Define shell function.\n"
 "    \n"
 "    Create a shell function named NAME.  When invoked as a simple command,\n"
-"    NAME runs COMMANDs in the calling shell's context.  When NAME is "
-"invoked,\n"
+"    NAME runs COMMANDs in the calling shell's context.  When NAME is invoked,\n"
 "    the arguments are passed to the function as $1...$n, and the function's\n"
 "    name is in $FUNCNAME.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless NAME is readonly."
 msgstr ""
+"Definiera en skalfunktion.\n"
+"    \n"
+"    Skapa en skalfunktion med namnet NAMN.  När den anropas som ett enkelt\n"
+"    kommando kör NAMN KOMMANDON i det anropande skalets kontext.  När NAMN\n"
+"    anropas skickas argumenten till funktionen som $1...$n och funktionens\n"
+"    namn finns i $FUNCNAME.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte NAMN endast är läsbart."
 
 #: builtins.c:1610
 msgid ""
@@ -3445,6 +4438,13 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the last command executed."
 msgstr ""
+"Gruppera kommandon som en enhet.\n"
+"    \n"
+"    Kör ett antal kommandon i en grupp.  Detta är ett sätt at omdirigera\n"
+"    en hel mängd kommandon.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar stutusen från det sist exekverade kommandot."
 
 #: builtins.c:1622
 msgid ""
@@ -3459,6 +4459,16 @@ msgid ""
 "    Exit Status:\n"
 "    Returns the status of the resumed job."
 msgstr ""
+"Återuppta jobb i förgrunden.\n"
+"    \n"
+"    Likvärdigt med JOBBSPEC-argumentet till kommandot \"fg\".  Återuppta\n"
+"    ett stoppat eller bakgrundsjobb.  JOBBSPEC kan ange antingen ett\n"
+"    jobbnamn eller ett jobbnummer.  Om JOBBSPEC följs av ett \"&\" placeras\n"
+"    jobbet i bakgrunden, som om jobbspecifikationen hade givits som ett\n"
+"    argument till \"bg\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar statusen på det återupptagna jobbet."
 
 #: builtins.c:1637
 msgid ""
@@ -3470,17 +4480,21 @@ msgid ""
 "    Exit Status:\n"
 "    Returns 1 if EXPRESSION evaluates to 0; returns 0 otherwise."
 msgstr ""
+"Beräkna aritmetiskt uttryck.\n"
+"    \n"
+"    UTTRYCKet beräknas enligt reglerna för aritmetisk beräkning.\n"
+"    Likvärdigt med \"let UTTRYCK\".\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar 1 om UTTRYCK beräknas till 0, returnerar 0 annars."
 
 #: builtins.c:1649
 msgid ""
 "Execute conditional command.\n"
 "    \n"
-"    Returns a status of 0 or 1 depending on the evaluation of the "
-"conditional\n"
-"    expression EXPRESSION.  Expressions are composed of the same primaries "
-"used\n"
-"    by the `test' builtin, and may be combined using the following "
-"operators:\n"
+"    Returns a status of 0 or 1 depending on the evaluation of the conditional\n"
+"    expression EXPRESSION.  Expressions are composed of the same primaries used\n"
+"    by the `test' builtin, and may be combined using the following operators:\n"
 "    \n"
 "      ( EXPRESSION )\tReturns the value of EXPRESSION\n"
 "      ! EXPRESSION\t\tTrue if EXPRESSION is false; else false\n"
@@ -3498,6 +4512,28 @@ msgid ""
 "    Exit Status:\n"
 "    0 or 1 depending on value of EXPRESSION."
 msgstr ""
+"Kör ett villkorligt kommando.\n"
+"    \n"
+"    Returnerar en status av 0 eller 1 beroende på evalueringen av det\n"
+"    villkorliga uttrycket UTTRYCK.  Uttryck är sammansatta av samma primitiver\n"
+"    som används av det inbyggda \"test\", och kan kombineras med följande\n"
+"    operatorer:\n"
+"    \n"
+"      ( UTTRYCK )\tReturnerar värdet på UTTRYCK\n"
+"      ! UTTRYCK\t\tSant om UTTRYCK är falskt, annars falskt\n"
+"      UTTR1 && UTTR2\tSant om både UTTR1 och UTTR2 är sanna, annars falskt\n"
+"      UTTR1 || UTTR2\tSant om antingen UTTR1 eller UTTR2 är sant, annars\n"
+"                        falskt\n"
+"    \n"
+"    När operatorerna \"==\" och \"!=\" används används strängen till höger om\n"
+"    som ett mönster och mönstermatchning utförs.  När operatorn \"=~\" används\n"
+"    matchas strängen till höger om operatorn som ett reguljärt uttryck.\n"
+"    \n"
+"    Operatorerna && och || beräknar inte UTTR2 om UTTR1 är tillräckligt för\n"
+"    att avgöra uttryckets värde.\n"
+"    \n"
+"    Slutstatus:\n"
+"    0 eller 1 beroende på värdet av UTTRYCK."
 
 #: builtins.c:1675
 msgid ""
@@ -3552,6 +4588,57 @@ msgid ""
 "    HISTIGNORE\tA colon-separated list of patterns used to decide which\n"
 "    \t\tcommands should be saved on the history list.\n"
 msgstr ""
+"Vanliga skalvariablers namn och användning.\n"
+"    \n"
+"    BASH_VERSION\tVersionsinformation för denna Bash.\n"
+"    CDPATH\tEn kolonseparerad lista av kataloger att söka i efter\n"
+"    \t\tkataloger givna som argument till \"cd\".\n"
+"    GLOBIGNORE\tEn kolonseparerad lista av mönster som beskriver filnamn\n"
+"    \t\tatt ignorera vid söknamnsexpansion.\n"
+"    HISTFILE\tNamnet på filen där din kommandohistorik sparas.\n"
+"    HISTFILESIZE\tDet maximala antalet rade denna fil kan innehålla.\n"
+"    HISTSIZE\tDet maximala antalet historierade ett körande skal kan\n"
+"    \t\tkomma åt.\n"
+"    HOME\tDen fullständiga sökvägen till din inloggningskatalog.\n"
+"    HOSTNAME\tNamnet på den aktuella värden.\n"
+"    HOSTTYPE\tTyp av CPU denna version av Bash kör under.\n"
+"    IGNOREEOF\tStyr skalets åtgärd när det tar emot ett filslutstecken\n"
+"    \t\tsom enda indata.  Om den är satt är dess värde det antal\n"
+"    \t\tfilslutstecken som kan ses i rad på en tom rad innan\n"
+"    \t\tskalet avslutar (10 som standard).  När den inte är satt\n"
+"    \t\tbetyder filslut slut på indata.\n"
+"    MACHTYPE\tEn sträng som bexkriver det aktuella systemet Bash kör på.\n"
+"    MAILCHECK\tHur ofta, i sekunder, Bash tittar efter ny post.\n"
+"    MAILPATH\tEn kolonseparerad lista av filnamn som Bash tittar efter\n"
+"    \t\tny post i.\n"
+"    OSTYPE\tDen version av Unix denna version av Bash kör på.\n"
+"    PATH\tEn kolonseparerad lista av kataloger att söka i när\n"
+"    \t\tkommandon skall letas upp.\n"
+"    PROMPT_COMMAND\tEtt kommando att köra före utskriften av varje\n"
+"    \t\tprimär prompt.\n"
+"    PS1\t\tDen primära promptsträngen.\n"
+"    PS2\t\tDen sekundära promptsträngen.\n"
+"    PWD\t\tDet fullständiga söknamnet till den aktuella katalogen.\n"
+"    SHELLOPTS\tEn kolonseparerad lista av aktiverade skalflaggor.\n"
+"    TERM\tNamnet på den aktuella terminaltypen.\n"
+"    TIMEFORMAT\tUtmatningsformatet för tidsstatistik som visas av det\n"
+"    \t\treserverade ordet \"time\".\n"
+"    auto_resume\tOm inte tomt betyder att ett kommandoord som förekommer\n"
+"    \t\tensamt på en rad först letas efter i listan av för tillfället\n"
+"    \t\tstoppade jobb.  Om det hittas där läggs det jobbet i\n"
+"    \t\tförgrunden.  Ett värde av \"exact\" betyder att kommandoordet\n"
+"    \t\texakt måste stämma med ett kommando i listan över stoppade\n"
+"    \t\tjobb.  Ett värde av \"substring\" betyder att kommandoordet\n"
+"    \t\tmåste stämma med en delsträng av jobbet.  Alla andra värden\n"
+"    \t\tbetyder att kommandot måste vara ett prefix av ett stoppat\n"
+"    \t\tjobb.\n"
+"    histchars\tTecken som styr historieexpansion och snabbsubstitution.\n"
+"    \t\tDet första tecknet är tecknet för historiesubstitution,\n"
+"    \t\tvanligen \"!\".  Det andra tecknet är tecknet för \"snabb\n"
+"    \t\tsubstitution\", vanligen \"^\".  Det tredje är tecknet för\n"
+"    \t\t\"historiekommentar\", vanligen \"#\".\n"
+"    HISTIGNORE\tEn kolonseparerad lista av mönster som används för att\n"
+"    \t\tbestämma vilka kommandon som skall sparas i historielistan.\n"
 
 #: builtins.c:1732
 msgid ""
@@ -3583,6 +4670,33 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
+"Lägg till kataloger på stacken.\n"
+"    \n"
+"    Lägger till en katalog till toppen av katalogstacken, eller roterar\n"
+"    stacken, och gör den nya toppen av stacken till den aktuella\n"
+"    arbetskatalogen.  Utan argument byts de två toppkatalogerna.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tUndertryck det normala bytet av katalog när kataloger\n"
+"    \tläggs till på stacken, så att endast stacken ändras.\n"
+"    \n"
+"    Argument:\n"
+"      +N\tRotera stacken så att den N:e katalogen (räknat från\n"
+"    \tvänster i listan som visas av \"dirs\", med start på noll) hamnar\n"
+"    \tpå toppen.\n"
+"    \n"
+"      -N\tRotera stacken så att den N:e katalogen (räknat från\n"
+"    \thöger i listan som visas av \"dirs\", med start på noll) hamnar\n"
+"    \tpå toppen.\n"
+"    \n"
+"      kat\tLägger till KAT till toppen av katalogstacken, och gör\n"
+"    \tden till den nya aktuella arbetskatalogen.\n"
+"    \n"
+"    Den inbyggda \"dirs\" visar katalogstacken.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
+"    katalog misslyckas."
 
 #: builtins.c:1766
 msgid ""
@@ -3610,6 +4724,29 @@ msgid ""
 "    Returns success unless an invalid argument is supplied or the directory\n"
 "    change fails."
 msgstr ""
+"Ta bort kataloger från stacken.\n"
+"    \n"
+"    Tar bort poster från katalogstacken.  Utan argument tas toppkatalogen\n"
+"    bort från stacken, och byter till den nya toppkatalogen.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n\tUndertryck det normala bytet av katalog när kataloger\n"
+"    \ttas bort från stacken, så att endast stacken ändras.\n"
+"    \n"
+"    Argument:\n"
+"      +N\tTar bort den N:e katalogen räknat från vänster i listan\n"
+"    \tsom visas av \"dirs\", med start på noll.  Till exempel: \"popd +0\"\n"
+"    \ttar bort den första katalogen, \"popd +1\" den andra.\n"
+"    \n"
+"      -N\tTar bort den N:e katalogen räknat från höger i listan\n"
+"    \tsom visas av \"dirs\", med start på noll.  Till exempel: \"popd -0\"\n"
+"    \ttar bort den sista katalogen, \"popd -1\" den näst sista.\n"
+"    \n"
+"    Den inbyggda \"dirs\" visar katalogstacken.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte ett ogiltigt argument ges eller bytet av\n"
+"    katalog misslyckas."
 
 #: builtins.c:1796
 msgid ""
@@ -3628,25 +4765,45 @@ msgid ""
 "    \twith its position in the stack\n"
 "    \n"
 "    Arguments:\n"
-"      +N\tDisplays the Nth entry counting from the left of the list shown "
-"by\n"
+"      +N\tDisplays the Nth entry counting from the left of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
-"      -N\tDisplays the Nth entry counting from the right of the list shown "
-"by\n"
+"      -N\tDisplays the Nth entry counting from the right of the list shown by\n"
 "    \tdirs when invoked without options, starting with zero.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Visa katalogstacken.\n"
+"    \n"
+"    Visa listan av kataloger i minnet för närvarande.  Kataloger kommer\n"
+"    in på listan med kommandot \"pushd\".  Du kan komma tillbaka upp genom\n"
+"    listan med kommandot \"popd\".\n"
+"    \n"
+"    Flaggor:\n"
+"      -c\tnollställer katalogstacken genom att ta bort alla element\n"
+"      -l\tskriv inte ut versioner med tildeprefix av kataloger som\n"
+"    \tär relativa till din hemkatalog\n"
+"      -p\tskriv katalogstacken med en post per rad\n"
+"      -v\tskriv katalogstacken med en post per rad föregångna av\n"
+"    \tdess position i stacken\n"
+"    \n"
+"    Argument:\n"
+"      +N\tVisar den N:e posten räknat från vänster i listan som visas\n"
+"    \tav dirs när det anropas utan flaggor, med början från noll.\n"
+"    \n"
+"      -N\tVisar den N:e posten räknat från höger i listan som visas\n"
+"    \tav dirs när det anropas utan fläggor, med början från noll.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
 #: builtins.c:1825
 msgid ""
 "Set and unset shell options.\n"
 "    \n"
 "    Change the setting of each shell option OPTNAME.  Without any option\n"
-"    arguments, list all shell options with an indication of whether or not "
-"each\n"
+"    arguments, list all shell options with an indication of whether or not each\n"
 "    is set.\n"
 "    \n"
 "    Options:\n"
@@ -3660,6 +4817,21 @@ msgid ""
 "    Returns success if OPTNAME is enabled; fails if an invalid option is\n"
 "    given or OPTNAME is disabled."
 msgstr ""
+"Slå på och av skalflaggor.\n"
+"    \n"
+"    Ändra inställningen av varje flagga FLGNAMN.  Utan några flaggargument\n"
+"    listas alla skalflaggor med en indikation om var och en är satt.\n"
+"    \n"
+"    Flaggor:\n"
+"      -o\tbegränsa FLGNAMN till de som kan användas med \"set -o\"\n"
+"      -p\tskriv raje skalflagga med en indikation på dess status\n"
+"      -q\tutelämna utmatning\n"
+"      -s\taktivera (slå på) varje FLGNAMN\n"
+"      -u\tavaktivera (slå av) varje FLGNAMN\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om FLGNAMN är aktiverat, misslyckas om en ogiltig\n"
+"    flagga ges eller FLGNAMN är avaktiverat."
 
 #: builtins.c:1846
 msgid ""
@@ -3669,36 +4841,51 @@ msgid ""
 "      -v var\tassign the output to shell variable VAR rather than\n"
 "    \t\tdisplay it on the standard output\n"
 "    \n"
-"    FORMAT is a character string which contains three types of objects: "
-"plain\n"
-"    characters, which are simply copied to standard output; character "
-"escape\n"
+"    FORMAT is a character string which contains three types of objects: plain\n"
+"    characters, which are simply copied to standard output; character escape\n"
 "    sequences, which are converted and copied to the standard output; and\n"
-"    format specifications, each of which causes printing of the next "
-"successive\n"
+"    format specifications, each of which causes printing of the next successive\n"
 "    argument.\n"
 "    \n"
-"    In addition to the standard format specifications described in printf"
-"(1)\n"
+"    In addition to the standard format specifications described in printf(1)\n"
 "    and printf(3), printf interprets:\n"
 "    \n"
 "      %b\texpand backslash escape sequences in the corresponding argument\n"
 "      %q\tquote the argument in a way that can be reused as shell input\n"
 "    \n"
 "    Exit Status:\n"
-"    Returns success unless an invalid option is given or a write or "
-"assignment\n"
+"    Returns success unless an invalid option is given or a write or assignment\n"
 "    error occurs."
 msgstr ""
+"Formatera och skriv ARGUMENT styrda av FORMAT.\n"
+"    \n"
+"    Flaggor:\n"
+"      -v var\ttilldela utdata till skalvariabeln VAR istället för att\n"
+"    \t\tskriva den på standard ut\n"
+"    \n"
+"    FORMAT är en teckensträng som innehåller tre sortes objekt: vanliga\n"
+"    tecken, som helt enkelt kopieras till standard ut, teckenstyrsekvenser\n"
+"    som konverteras och kopieras till standard ut och formatspecifikationer,\n"
+"    där var och en medför utskrift av det nästföljande argumentet.\n"
+"    argument.\n"
+"    \n"
+"    Förutom de standardformatspecifikationer som beskrivs a printf(1) och\n"
+"    printf(3) tolkar printf:\n"
+"    \n"
+"      %b\texpandera bakstrecksstyrsekvenser i motsvarande argument\n"
+"      %q\tcitera argumentet på ett sätt som kan återanvändas som\n"
+"    \t\tindata till ett skal\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett skriv-\n"
+"    eller tilldelningsfel inträffar."
 
 #: builtins.c:1873
 msgid ""
 "Specify how arguments are to be completed by Readline.\n"
 "    \n"
-"    For each NAME, specify how arguments are to be completed.  If no "
-"options\n"
-"    are supplied, existing completion specifications are printed in a way "
-"that\n"
+"    For each NAME, specify how arguments are to be completed.  If no options\n"
+"    are supplied, existing completion specifications are printed in a way that\n"
 "    allows them to be reused as input.\n"
 "    \n"
 "    Options:\n"
@@ -3712,30 +4899,51 @@ msgid ""
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Ange hur argument skal kompletteras av Readline.\n"
+"    \n"
+"    För varje NAMN, ange hur argument skall kompletteras.  Om inga flaggor\n"
+"    är givna skrivs nuvarande kompletteringsspecifikationer ut på ett sätt\n"
+"    som gör att de kan användas som indata.\n"
+"    \n"
+"    Flaggor:\n"
+"      -p\tskriv existerande kompletteringsspecifikationer på ett\n"
+"    \tåteranvändningsbart format\n"
+"      -r\tta bort en kompletteringsspecifikation för varje NAMN eller\n"
+"    \tom inga NAMN är givna, alla kompletteringsinformationer\n"
+"    \n"
+"    När komplettering försöker göras försöks åtgärder i den ordning de\n"
+"    versala flaggorna är uppräknade ovan.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
 #: builtins.c:1896
 msgid ""
 "Display possible completions depending on the options.\n"
 "    \n"
 "    Intended to be used from within a shell function generating possible\n"
-"    completions.  If the optional WORD argument is supplied, matches "
-"against\n"
+"    completions.  If the optional WORD argument is supplied, matches against\n"
 "    WORD are generated.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invalid option is supplied or an error occurs."
 msgstr ""
+"Visa möjliga kompletteringar beroende på flaggorna.\n"
+"    \n"
+"    Avsett att användas inifrån en skalfunktion för att generera möjliga\n"
+"    kompletteringar.  Om det valfria argumentet ORD är givet genereras\n"
+"    matchningar av ORD.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller ett fel inträffar."
 
 #: builtins.c:1911
 msgid ""
 "Modify or display completion options.\n"
 "    \n"
-"    Modify the completion options for each NAME, or, if no NAMEs are "
-"supplied,\n"
-"    the completion currently begin executed.  If no OPTIONs are givenm, "
-"print\n"
-"    the completion options for each NAME or the current completion "
-"specification.\n"
+"    Modify the completion options for each NAME, or, if no NAMEs are supplied,\n"
+"    the completion currently begin executed.  If no OPTIONs are givenm, print\n"
+"    the completion options for each NAME or the current completion specification.\n"
 "    \n"
 "    Options:\n"
 "    \t-o option\tSet completion option OPTION for each NAME\n"
@@ -3754,174 +4962,82 @@ msgid ""
 "    Returns success unless an invalid option is supplied or NAME does not\n"
 "    have a completion specification defined."
 msgstr ""
+"Modifiera eller visa kompletteringsflaggor.\n"
+"    \n"
+"    Modifiera kompletteringsflaggorna för varje NAMN, eller, om inga NAMN är\n"
+"    givna, den komplettering som för närvarande körs.  Om ingen FLAGGA är\n"
+"    given skrivs kompletteringsflaggorna för varje NAMN eller den aktuella\n"
+"    kompletteringsspecifikationen.\n"
+"    \n"
+"    Flaggor:\n"
+"    \t-o flagga\tSätt kompletteringsflagga FLAGGA för varje NAMN\n"
+"    \n"
+"    Genom att använda \"+o\" istället för \"-o\" slås den angivna flaggan av.\n"
+"    \n"
+"    Argument:\n"
+"    \n"
+"    Varje NAMN refererar till ett kommando för vilket en kompletterings-\n"
+"    specifikation måste ha definierats tidigare med det inbyggda \"complete\".\n"
+"    Om inget NAMN ges måste compopt anropas av en funktion som just nu\n"
+"    genererar kompletteringar, och flaggorna för den just nu exekverande\n"
+"    kompletteringsgeneratorn modifieras.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller NAMN inte har\n"
+"    någon kompletteringsspecifikaation definierad."
 
 #: builtins.c:1939
 msgid ""
 "Read lines from a file into an array variable.\n"
 "    \n"
-"    Read lines from the standard input into the array variable ARRAY, or "
-"from\n"
-"    file descriptor FD if the -u option is supplied.  The variable MAPFILE "
-"is\n"
+"    Read lines from the standard input into the array variable ARRAY, or from\n"
+"    file descriptor FD if the -u option is supplied.  The variable MAPFILE is\n"
 "    the default ARRAY.\n"
 "    \n"
 "    Options:\n"
-"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are "
-"copied.\n"
-"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default "
-"index is 0.\n"
+"      -n count\tCopy at most COUNT lines.  If COUNT is 0, all lines are copied.\n"
+"      -O origin\tBegin assigning to ARRAY at index ORIGIN.  The default index is 0.\n"
 "      -s count \tDiscard the first COUNT lines read.\n"
 "      -t\t\tRemove a trailing newline from each line read.\n"
-"      -u fd\t\tRead lines from file descriptor FD instead of the standard "
-"input.\n"
+"      -u fd\t\tRead lines from file descriptor FD instead of the standard input.\n"
 "      -C callback\tEvaluate CALLBACK each time QUANTUM lines are read.\n"
-"      -c quantum\tSpecify the number of lines read between each call to "
-"CALLBACK.\n"
+"      -c quantum\tSpecify the number of lines read between each call to CALLBACK.\n"
 "    \n"
 "    Arguments:\n"
 "      ARRAY\t\tArray variable name to use for file data.\n"
 "    \n"
 "    If -C is supplied without -c, the default quantum is 5000.\n"
 "    \n"
-"    If not supplied with an explicit origin, mapfile will clear ARRAY "
-"before\n"
+"    If not supplied with an explicit origin, mapfile will clear ARRAY before\n"
 "    assigning to it.\n"
 "    \n"
 "    Exit Status:\n"
 "    Returns success unless an invald option is given or ARRAY is readonly."
 msgstr ""
-
-#~ msgid "%s: invalid number"
-#~ msgstr "%s: ogiltigt nummer"
-
-#~ msgid "allocated"
-#~ msgstr "allokerat"
-
-#~ msgid "bug: unknown operation"
-#~ msgstr "bugg: okänd operation"
-
-#~ msgid "Obsolete.  See `declare'."
-#~ msgstr "Föråldrad.  Se \"declare\"."
-
-#~ msgid "bind '\"\\C-x\\C-r\": re-read-init-file'."
-#~ msgstr "bind '\"\\C-x\\C-r\": re-read-init-file'."
-
-#~ msgid "  -l                 List names of functions."
-#~ msgstr "  -l                 Lista namn på funktioner."
-
-#~ msgid "The flags are:"
-#~ msgstr "Flaggorna är:"
-
-#, fuzzy
-#~ msgid "name only."
-#~ msgstr "En&dast namn"
-
-#, fuzzy
-#~ msgid "string."
-#~ msgstr "STRÄNG"
-
-#, fuzzy
-#~ msgid "used."
-#~ msgstr "Anv_änt"
-
-#~ msgid "\t=, *=, /=, %=,"
-#~ msgstr "\t=, *=, /=, %=,"
-
-#~ msgid "\t+=, -=, <<=, >>=,"
-#~ msgstr "\t+=, -=, <<=, >>=,"
-
-#, fuzzy
-#~ msgid "    -o option-name"
-#~ msgstr "Inställningsnamn"
-
-#~ msgid "            allexport    same as -a"
-#~ msgstr "            allexport    samma som -a"
-
-#~ msgid "            braceexpand  same as -B"
-#~ msgstr "            braceexpand  samma som -B"
-
-#~ msgid "            errexit      same as -e"
-#~ msgstr "            errexit      samma som -e"
-
-#~ msgid "            errtrace     same as -E"
-#~ msgstr "            errtrace     samma som -E"
-
-#~ msgid "            functrace    same as -T"
-#~ msgstr "            functrace    samma som -T"
-
-#~ msgid "            hashall      same as -h"
-#~ msgstr "            hashall      samma som -h"
-
-#~ msgid "            histexpand   same as -H"
-#~ msgstr "            histexpand   samma som -H"
-
-#~ msgid "            keyword      same as -k"
-#~ msgstr "            keyword      samma som -k"
-
-#~ msgid "            monitor      same as -m"
-#~ msgstr "            monitor      samma som -m"
-
-#~ msgid "            noclobber    same as -C"
-#~ msgstr "            noclobber    samma som -C"
-
-#~ msgid "            noexec       same as -n"
-#~ msgstr "            noexec       samma som -n"
-
-#~ msgid "            noglob       same as -f"
-#~ msgstr "            noglob       samma som -f"
-
-#~ msgid "            notify       same as -b"
-#~ msgstr "            notify       samma som -b"
-
-#~ msgid "            nounset      same as -u"
-#~ msgstr "            nounset      samma som -u"
-
-#~ msgid "            onecmd       same as -t"
-#~ msgstr "            onecmd       samma som -t"
-
-#~ msgid "            physical     same as -P"
-#~ msgstr "            physical     samma som -P"
-
-#~ msgid "            privileged   same as -p"
-#~ msgstr "            privileged   samma som -p"
-
-#~ msgid "            verbose      same as -v"
-#~ msgstr "            verbose      samma som -v"
-
-#~ msgid "            xtrace       same as -x"
-#~ msgstr "            xtrace       samma som -x"
-
-#, fuzzy
-#~ msgid "processing."
-#~ msgstr "Bearbetar..."
-
-#, fuzzy
-#~ msgid "                   modification date)."
-#~ msgstr "Ändrad datum"
-
-# Operander?
-#~ msgid "String operators:"
-#~ msgstr "Strängoperatörer:"
-
-#, fuzzy
-#~ msgid "    -n STRING"
-#~ msgstr "STRÄNG"
-
-# Operander?
-#~ msgid "Other operators:"
-#~ msgstr "Övriga operatörer:"
-
-#, fuzzy
-#~ msgid "the shell."
-#~ msgstr "Skal: "
-
-#, fuzzy
-#~ msgid "command name."
-#~ msgstr "Kommandonamn"
-
-#, fuzzy
-#~ msgid "processes."
-#~ msgstr "Processer"
-
-#~ msgid "generated."
-#~ msgstr "genererad."
+"Läs rader fån en fil till en vektorvariabel.\n"
+"    \n"
+"    Läs rader från standard in till vektorvariabeln VEKTOR, eller från\n"
+"    filbeskrivaren FB om flaggan -u ges.  Variabeln MAPFILE är standard\n"
+"    för VEKTOR.\n"
+"    \n"
+"    Flaggor:\n"
+"      -n antal\tKopiera högs ANTAL rader.  Om ANTAL är 0 kopieras alla rader.\n"
+"      -O start\tBörja tilldela till VEKTOR vid index START.  Standardindex är 0.\n"
+"      -s antal \tSläng de första ANTAL inlästa raderna.\n"
+"      -t\t\tTa bort en avslutande nyrad från varje inläst rad.\n"
+"      -u fb\t\tLäs rader från filbeskrivare FB istället för standard in.\n"
+"      -C återanrop\tBeräkna ÅTERANROP för varje KVANTA rader som läses.\n"
+"      -c kvanta \tAnge antalet rader att läsa mellan varje anrop av\n"
+"      \t\t \tÅTERANROP.\n"
+"    \n"
+"    Argument:\n"
+"      VEKTOR\t\tNamn på vektorvariabel att använda för fildata.\n"
+"    \n"
+"    Om -C ges utan -c är standardkvanta 5000.\n"
+"    \n"
+"    Om det inte ges någon specificerad start kommer mapfile nollställa VEKTOR\n"
+"    före tilldelning till den.\n"
+"    \n"
+"    Slutstatus:\n"
+"    Returnerar framgång om inte en ogiltig flagga ges eller VEKTOR är\n"
+"    oföränderlig."
diff --git a/sig.c b/sig.c
index 55c6c425e67b8af3000da29e06f3138333e88398..590eca7ecd456d39b51782609821283b9a9df781 100644 (file)
--- a/sig.c
+++ b/sig.c
@@ -56,6 +56,7 @@ extern int last_command_exit_value;
 extern int last_command_exit_signal;
 extern int return_catch_flag;
 extern int loop_level, continuing, breaking;
+extern int executing_list;
 extern int parse_and_execute_level, shell_initialized;
 
 /* Non-zero after SIGINT. */
@@ -365,7 +366,7 @@ top_level_cleanup ()
 #endif /* PROCESS_SUBSTITUTION */
 
   run_unwind_protects ();
-  loop_level = continuing = breaking = 0;
+  loop_level = continuing = breaking = executing_list = 0;
   return_catch_flag = 0;
 }
 
@@ -416,7 +417,7 @@ throw_to_top_level ()
 #endif /* PROCESS_SUBSTITUTION */
 
   run_unwind_protects ();
-  loop_level = continuing = breaking = 0;
+  loop_level = continuing = breaking = executing_list = 0;
   return_catch_flag = 0;
 
   if (interactive && print_newline)