m4-patches
[Top][All Lists]
Advanced

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

FYI: 8-gary-module-api-audit-module.patch


From: Gary V. Vaughan
Subject: FYI: 8-gary-module-api-audit-module.patch
Date: Fri, 13 Jun 2003 11:45:27 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030529

--
())_. Gary V. Vaughan gary@(oranda.demon.co.uk|gnu.org)
( '/  Research Scientist http://www.oranda.demon.co.uk ,_())____
/ )=  GNU Hacker http://www.gnu.org/software/libtool    \'      `&
`(_~)_ Tech' Author http://sources.redhat.com/autobook   =`---d__/
Index: ChangeLog
from  Gary V. Vaughan  <address@hidden>
        Refactoring modules to rationalise the API into an external
        documented (eventually!) API for use by modules in the `m4_'
        namespace declared in m4/m4module.h, an internal API between the
        source files we ship (including our shipped modules) in the `m4__'
        namespace declared in m4/m4private.h and making the rest as
        cohesive as possible with liberal use of the `static' keyword.
        This change represents an audit to m4/module.c along these
        guidelines.

        * m4/m4module.h (m4_module_close_all, m4_module_find_by_builtin):
        Removed.  No longer used.
        (m4_module_close): Removed prototypes.
        (m4_module_init, m4_module_open, m4_module_unload_all): Removed
        from the exported module api...
        * m4/m4private.h (m4__module_init, m4__module_open)
        (m4__module_exit): ...and renamed and added to the internal api.
        Changed all callers.
        (BUILTIN_SYMBOL, MACRO_SYMBOL, INIT_SYMBOL, FINISH_SYMBOL):
        Centralised definitions after renaming...
        * m4/module.c (M4_BUILTIN_SYMBOL, M4_MACRO_SYMBOL, M4_INIT_SYMBOL)
        (M4_FINISH_SYMBOL): ...and removing from here.
        (m4_module_dlerror, m4_module_remove, m4_module_close)
        (m4_caller_id): Not exported at all, so renamed to module_dlerror,
        module_remove, module_close and caller_id.
        (MODULE_SELF_NAME): New macro to make reporting self errors
        easier.
        (m4_module_load, module_close, module_remove): Use it.
        * m4/m4private.h (USER_MODULE_PATH_ENV): Macro to hold "M4MODPATH"
        name.
        * src/main.c (main): Use it.

2003-06-12  Gary V. Vaughan  <address@hidden>

Index: m4/m4module.h
===================================================================
RCS file: /cvsroot/m4/m4/m4/m4module.h,v
retrieving revision 1.42
diff -u -p -u -r1.42 m4module.h
--- m4/m4module.h 6 Jun 2003 16:14:05 -0000 1.42
+++ m4/m4module.h 12 Jun 2003 16:31:29 -0000
@@ -35,7 +35,7 @@ typedef struct m4_symbol      m4_symbol;
 typedef struct m4_token                m4_token;
 
 
-typedef void m4_builtin_func (struct obstack *, int, struct m4_token **);
+typedef void m4_builtin_func (struct obstack *, int, m4_token **);
 typedef void *m4_module_func (const char *);
 
 typedef struct {
@@ -62,20 +62,12 @@ typedef struct {
 typedef void m4_module_init_func   (lt_dlhandle, struct obstack*);
 typedef void m4_module_finish_func (lt_dlhandle, struct obstack*);
 
-extern void        m4_module_init   (void);
 extern lt_dlhandle  m4_module_load   (const char*, struct obstack*);
 extern void        m4_module_unload (const char*, struct obstack*);
-extern void        m4_module_unload_all (void);
-extern lt_dlhandle  m4_module_open   (const char*, struct obstack*);
-extern void        m4_module_close  (lt_dlhandle, struct obstack*);
-extern void        m4_module_close_all (struct obstack*);
 
 extern const char  *m4_module_name     (lt_dlhandle);
 extern m4_builtin  *m4_module_builtins (lt_dlhandle);
 extern m4_macro           *m4_module_macros   (lt_dlhandle);
-
-extern lt_dlhandle  m4_module_find_by_builtin (const m4_builtin*);
-
 
 
 /* --- SYMBOL TABLE MANAGEMENT --- */
Index: m4/m4private.h
===================================================================
RCS file: /cvsroot/m4/m4/m4/m4private.h,v
retrieving revision 1.18
diff -u -p -u -r1.18 m4private.h
--- m4/m4private.h 6 Jun 2003 16:14:05 -0000 1.18
+++ m4/m4private.h 12 Jun 2003 16:31:29 -0000
@@ -27,6 +27,20 @@
 #include <assert.h>
 #include <m4module.h>
 
+
+/* --- MODULE MANAGEMENT --- */
+
+#define USER_MODULE_PATH_ENV   "M4MODPATH"
+#define BUILTIN_SYMBOL         "m4_builtin_table"
+#define MACRO_SYMBOL           "m4_macro_table"
+#define INIT_SYMBOL            "m4_init_module"
+#define FINISH_SYMBOL          "m4_finish_module"
+
+extern void        m4__module_init (void);
+extern lt_dlhandle  m4__module_open (const char *name, struct obstack *obs);
+extern void        m4__module_exit (void);
+
+
 /* TRUE iff strlen(rquote) == strlen(lquote) == 1 */
 extern boolean m4__single_quotes;
 
Index: m4/module.c
===================================================================
RCS file: /cvsroot/m4/m4/m4/module.c,v
retrieving revision 1.16
diff -u -p -u -r1.16 module.c
--- m4/module.c 19 Oct 2001 15:35:11 -0000 1.16
+++ m4/module.c 12 Jun 2003 16:31:29 -0000
@@ -77,16 +77,13 @@
  * have been made (nor will the symbol table be purged).
  **/
 
-#define M4_BUILTIN_SYMBOL      "m4_builtin_table"
-#define M4_MACRO_SYMBOL                "m4_macro_table"
-#define M4_INIT_SYMBOL         "m4_init_module"
-#define M4_FINISH_SYMBOL       "m4_finish_module"
-
-static const char*  m4_module_dlerror  (void);
-static int         m4_module_remove    (lt_dlhandle handle,
-                                        struct obstack *obs);
+#define MODULE_SELF_NAME       "!myself!"
 
-static lt_dlcaller_id m4_caller_id = 0;
+static const char*  module_dlerror (void);
+static int         module_remove  (lt_dlhandle handle, struct obstack *obs);
+static void        module_close   (lt_dlhandle handle, struct obstack *obs);
+
+static lt_dlcaller_id caller_id = 0;
 
 const char *
 m4_module_name (lt_dlhandle handle)
@@ -107,7 +104,7 @@ m4_module_builtins (lt_dlhandle handle)
 
   assert (handle);
 
-  data = (m4_module_data *) lt_dlcaller_get_data (m4_caller_id, handle);
+  data = (m4_module_data *) lt_dlcaller_get_data (caller_id, handle);
 
   return data ? data->bp : 0;
 }
@@ -119,60 +116,106 @@ m4_module_macros (lt_dlhandle handle)
 
   assert (handle);
 
-  data = (m4_module_data *) lt_dlcaller_get_data (m4_caller_id, handle);
+  data = (m4_module_data *) lt_dlcaller_get_data (caller_id, handle);
 
   return data ? data->mp : 0;
 }
 
 lt_dlhandle
-m4_module_find_by_builtin (const m4_builtin *match)
+m4_module_load (const char *name, struct obstack *obs)
 {
-  lt_dlhandle    handle = 0;
+  const lt_dlhandle handle = m4__module_open (name, obs);
 
-  while ((handle = lt_dlhandle_next (handle)))
+  /* If name is not set we are getting a reflective handle, but we
+     might need to display an error message later so we set an appropriate
+     value here.  */
+  if (!name)
+    name = MODULE_SELF_NAME;
+
+  if (handle)
     {
-      m4_module_data *data
-       = (m4_module_data *) lt_dlcaller_get_data (m4_caller_id, handle);
+      const lt_dlinfo  *info   = lt_dlgetinfo (handle);
 
-      if (data && data->bp)
+      if (!info)
        {
-         const m4_builtin *bp;
+         M4ERROR ((warning_status, 0,
+                   _("Warning: cannot load module `%s': %s"),
+                   name, module_dlerror ()));
+       }
+      else if (info->ref_count == 1)
+       {
+         const m4_builtin *bp  = m4_module_builtins (handle);
+         const m4_macro   *mp  = m4_module_macros (handle);
 
-         for (bp = &data->bp[0]; bp->name; ++bp)
-           if (bp == match)
-             goto found;
+         /* Install the macro functions.  */
+         if (bp)
+           {
+             m4_builtin_table_install (handle, bp);
+#ifdef DEBUG_MODULES
+             M4_DEBUG_MESSAGE1("module %s: builtins loaded", name);
+#endif /* DEBUG_MODULES */
+           }
+
+         /* Install the user macros. */
+         if (mp)
+           {
+             m4_macro_table_install (handle, mp);
+#ifdef DEBUG_MODULES
+             M4_DEBUG_MESSAGE1("module %s: macros loaded", name);
+#endif /* DEBUG_MODULES */
+           }
        }
     }
 
- found:
   return handle;
 }
 
-
-
-const char *
-m4_module_dlerror (void)
+/* Unload a module.  */
+void
+m4_module_unload (const char *name, struct obstack *obs)
 {
-  const char *dlerror = lt_dlerror ();
+  lt_dlhandle  handle  = 0;
+  int          errors  = 0;
 
-  if (!dlerror)
-    dlerror = _("unknown error");
+  /* Scan the list for the first module with a matching name.  */
+  while ((handle = lt_dlhandle_next (handle)))
+    {
+      if (name && (strcmp (name, m4_module_name (handle)) == 0))
+       break;
+    }
 
-  return dlerror;
+  if (!handle)
+    {
+      const char *error_msg = _("module not loaded");
+
+      lt_dlseterror (lt_dladderror (error_msg));
+      ++errors;
+    }
+  else
+    errors = module_remove (handle, obs);
+
+  if (errors)
+    {
+      M4ERROR ((EXIT_FAILURE, 0,
+               _("cannot unload module `%s': %s"),
+               name ? name : MODULE_SELF_NAME, module_dlerror ()));
+    }
 }
 
+
+
 /* Initialisation.  Currently the module search path in path.c is
    initialised from M4MODPATH.  Only absolute path names are accepted to
    prevent the path search of the dlopen library from finding wrong
    files. */
 void
-m4_module_init (void)
+m4__module_init (void)
 {
   int errors = 0;
 
   /* Do this only once!  If we already have a caller_id, then the
      module system has already been initialised.  */
-  if (m4_caller_id)
+  if (caller_id)
     {
       M4ERROR ((warning_status, 0,
                _("Warning: multiple module loader initialisations")));
@@ -191,9 +234,9 @@ m4_module_init (void)
      ltdl module handles.  */
   if (!errors)
     {
-      m4_caller_id = lt_dlcaller_register ();
+      caller_id = lt_dlcaller_register ();
 
-      if (!m4_caller_id)
+      if (!caller_id)
        {
          const char *error_msg = _("libltdl client registration failed");
 
@@ -213,7 +256,7 @@ m4_module_init (void)
      search path.  */
   if (!errors)
     {
-      char *path = getenv ("M4MODPATH");
+      char *path = getenv (USER_MODULE_PATH_ENV);
 
       if (path)
        errors = lt_dlinsertsearchdir (lt_dlgetsearchpath (), path);
@@ -223,7 +266,7 @@ m4_module_init (void)
   if (errors)
     M4ERROR ((EXIT_FAILURE, 0,
              _("failed to initialise module loader: %s"),
-             m4_module_dlerror ()));
+             module_dlerror ()));
 
 #ifdef DEBUG_MODULES
   M4_DEBUG_MESSAGE ("Module loader initialised.");
@@ -231,20 +274,17 @@ m4_module_init (void)
 }
 
 
-/* Load a module.  MODNAME can be a absolute file name or, if relative,
+/* Load a module.  NAME can be a absolute file name or, if relative,
    it is searched for in the module path.  The module is unloaded in
    case of error.  */
 lt_dlhandle
-m4_module_open (const char *name, struct obstack *obs)
+m4__module_open (const char *name, struct obstack *obs)
 {
-  lt_dlhandle          handle          = 0;
+  lt_dlhandle          handle          = lt_dlopenext (name);
   m4_module_init_func  *init_func      = 0;
   m4_builtin          *bp              = 0;
   m4_macro            *mp              = 0;
 
-  /* Dynamically open the named module. */
-  handle = lt_dlopenext (name);
-
   if (handle)
     {
 #ifdef DEBUG_MODULES
@@ -253,14 +293,14 @@ m4_module_open (const char *name, struct
 #endif
 
       /* Find the builtin table in the opened module. */
-      bp = (m4_builtin *) lt_dlsym (handle, M4_BUILTIN_SYMBOL);
+      bp = (m4_builtin *) lt_dlsym (handle, BUILTIN_SYMBOL);
 
       /* Find the macro table in the opened module. */
-      mp = (m4_macro *) lt_dlsym (handle, M4_MACRO_SYMBOL);
+      mp = (m4_macro *) lt_dlsym (handle, MACRO_SYMBOL);
 
       /* Find and run any initialising function in the opened module,
         each time the module is opened.  */
-      init_func = (m4_module_init_func *) lt_dlsym (handle, M4_INIT_SYMBOL);
+      init_func = (m4_module_init_func *) lt_dlsym (handle, INIT_SYMBOL);
       if (init_func)
        {
          (*init_func) (handle, obs);
@@ -275,14 +315,14 @@ m4_module_open (const char *name, struct
       /* Couldn't open the module; diagnose and exit. */
       M4ERROR ((EXIT_FAILURE, 0,
                _("cannot open module `%s': %s"),
-               name, m4_module_dlerror ()));
+               name, module_dlerror ()));
     }
 
   if (!bp && !mp && !init_func)
     {
       /* Since we don't use it here, only check for the finish hook
         if we were about to diagnose a module with no entry points.  */
-      if (!lt_dlsym (handle, M4_FINISH_SYMBOL))
+      if (!lt_dlsym (handle, FINISH_SYMBOL))
        M4ERROR ((EXIT_FAILURE, 0,
                  _("module `%s' has no entry points"),
                  name));
@@ -303,7 +343,7 @@ m4_module_open (const char *name, struct
          data->bp      = bp;
          data->mp      = mp;
 
-         stale = lt_dlcaller_set_data (m4_caller_id, handle, data);
+         stale = lt_dlcaller_set_data (caller_id, handle, data);
 
          if (stale)
            {
@@ -324,17 +364,72 @@ m4_module_open (const char *name, struct
 }
 
 void
-m4_module_close (lt_dlhandle handle, struct obstack *obs)
+m4__module_exit (void)
 {
-  m4_module_finish_func *finish_func   = 0;
-  char                 *name           = 0;
+  lt_dlhandle  handle  = lt_dlhandle_next (0);
+  int          errors  = 0;
+
+  while (handle && !errors)
+    {
+      lt_dlhandle      pending = handle;
+      const lt_dlinfo *info    = lt_dlgetinfo (pending);
+
+      /* We are *really* shutting down here, so freeing the module
+        data is required.  */
+      if (info)
+       {
+         m4_module_data *stale
+           = lt_dlcaller_set_data (caller_id, handle, 0);
+         XFREE (stale);
+       }
+
+      /* If we are about to unload the final reference, move on to the
+        next handle before we unload the current one.  */
+      if (info->ref_count <= 1)
+       handle = lt_dlhandle_next (pending);
+
+      errors = module_remove (pending, 0);
+    }
+
+  if (!errors)
+    errors = lt_dlexit();
+
+  if (errors)
+    {
+      M4ERROR ((EXIT_FAILURE, 0,
+               _("cannot unload all modules: %s"),
+               module_dlerror ()));
+    }
+}
+
+
+
+static const char *
+module_dlerror (void)
+{
+  const char *dlerror = lt_dlerror ();
+
+  if (!dlerror)
+    dlerror = _("unknown error");
+
+  return dlerror;
+}
+
+static void
+module_close (lt_dlhandle handle, struct obstack *obs)
+{
+  m4_module_finish_func *finish_func;
+  char                 *name;
   int                   errors         = 0;
 
   assert (handle);
-  name = xstrdup (m4_module_name (handle));
+
+  /* Be careful when closing myself.  */
+  name = m4_module_name (handle);
+  name = xstrdup (name ? name : MODULE_SELF_NAME);
 
   /* Run any finishing function for the opened module. */
-  finish_func = (m4_module_finish_func *) lt_dlsym (handle, M4_FINISH_SYMBOL);
+  finish_func = (m4_module_finish_func *) lt_dlsym (handle, FINISH_SYMBOL);
 
   if (finish_func)
     {
@@ -354,7 +449,7 @@ m4_module_close (lt_dlhandle handle, str
       if (info && (info->ref_count == 1))
        {
          m4_module_data *stale
-           = lt_dlcaller_set_data (m4_caller_id, handle, 0);
+           = lt_dlcaller_set_data (caller_id, handle, 0);
          XFREE (stale);
        }
 
@@ -375,86 +470,28 @@ m4_module_close (lt_dlhandle handle, str
     {
       M4ERROR ((EXIT_FAILURE, 0,
                _("cannot close module `%s': %s"),
-               name, m4_module_dlerror ()));
+               name, module_dlerror ()));
     }
 
   xfree (name);
 }
 
-void
-m4_module_close_all (struct obstack *obs)
+static int
+module_remove (lt_dlhandle handle, struct obstack *obs)
 {
-  lt_dlhandle  handle  = lt_dlhandle_next (0);
+  const lt_dlinfo *info;
+  int             errors       = 0;
 
-  while (handle)
-    {
-      /* Be careful not to reference each handle after it has been
-        closed, even to find the address of the next handle.  */
-      lt_dlhandle pending = handle;
-      handle = lt_dlhandle_next (handle);
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: attempting module close",
-                       m4_module_name (pending));
-#endif /* DEBUG_MODULES */
-      m4_module_close (pending, obs);
-    }
-
-  if (lt_dlexit() != 0)
-    {
-      M4ERROR ((EXIT_FAILURE, 0,
-               _("cannot close modules: %s"),
-               m4_module_dlerror ()));
-    }
-}
-
-lt_dlhandle
-m4_module_load (const char *name, struct obstack *obs)
-{
-  const lt_dlhandle handle = m4_module_open (name, obs);
+  char *          name;
 
+  /* Be careful when closing myself.  */
   if (handle)
     {
-      const lt_dlinfo  *info   = lt_dlgetinfo (handle);
-
-      if (!info)
-       {
-         M4ERROR ((warning_status, 0,
-                   _("Warning: cannot load module `%s': %s"),
-                   name, m4_module_dlerror ()));
-       }
-      else if (info->ref_count == 1)
-       {
-         const m4_builtin *bp  = m4_module_builtins (handle);
-         const m4_macro   *mp  = m4_module_macros (handle);
-
-         /* Install the macro functions.  */
-         if (bp)
-           {
-             m4_builtin_table_install (handle, bp);
-#ifdef DEBUG_MODULES
-             M4_DEBUG_MESSAGE1("module %s: builtins loaded", name);
-#endif /* DEBUG_MODULES */
-           }
-
-         /* Install the user macros. */
-         if (mp)
-           {
-             m4_macro_table_install (handle, mp);
-#ifdef DEBUG_MODULES
-             M4_DEBUG_MESSAGE1("module %s: macros loaded", name);
-#endif /* DEBUG_MODULES */
-           }
-       }
+      name = m4_module_name (handle);
+      name = xstrdup (name ? name : MODULE_SELF_NAME);
     }
-
-  return handle;
-}
-
-int
-m4_module_remove (lt_dlhandle handle, struct obstack *obs)
-{
-  const lt_dlinfo *info                = 0;
-  int             errors       = 0;
+#endif /* DEBUG_MODULES */
 
   assert (handle);
 
@@ -466,97 +503,25 @@ m4_module_remove (lt_dlhandle handle, st
   if (info->ref_count > 1)
     {
       M4_DEBUG_MESSAGE2("module %s: now has %d references.",
-                       m4_module_name (handle), info->ref_count -1);
+                       name, info->ref_count -1);
     }
 #endif /* DEBUG_MODULES */
 
   if (info->ref_count == 1)
     {
       /* Remove the table references only when ref_count is *exactly*
-        equal to 1.  If m4_module_close is called again on a
+        equal to 1.  If module_close is called again on a
         resident module after the references have already been
         removed, we needn't try to remove them again!  */
       m4_symtab_remove_module_references (handle);
 
 #ifdef DEBUG_MODULES
-      M4_DEBUG_MESSAGE1("module %s: symbols unloaded",
-                       m4_module_name (handle));
+      M4_DEBUG_MESSAGE1("module %s: symbols unloaded", name);
 #endif /* DEBUG_MODULES */
     }
 
   if (!errors)
-    m4_module_close (handle, obs);
+    module_close (handle, obs);
 
   return errors;
-}
-
-/* Unload a module.  */
-void
-m4_module_unload (const char *name, struct obstack *obs)
-{
-  lt_dlhandle  handle  = 0;
-  int          errors  = 0;
-
-  /* Scan the list for the first module with a matching name.  */
-  while ((handle = lt_dlhandle_next (handle)))
-    {
-      if (name && (strcmp (name, m4_module_name (handle)) == 0))
-       break;
-    }
-
-  if (!handle)
-    {
-      const char *error_msg = _("module not loaded");
-
-      lt_dlseterror (lt_dladderror (error_msg));
-      ++errors;
-    }
-  else
-    errors = m4_module_remove (handle, obs);
-
-  if (errors)
-    {
-      M4ERROR ((EXIT_FAILURE, 0,
-               _("cannot unload module `%s': %s"),
-               name, m4_module_dlerror ()));
-    }
-}
-
-void
-m4_module_unload_all (void)
-{
-  lt_dlhandle  handle  = lt_dlhandle_next (0);
-  int          errors  = 0;
-
-  while (handle && !errors)
-    {
-      lt_dlhandle      pending = handle;
-      const lt_dlinfo *info    = lt_dlgetinfo (pending);
-
-      /* We are *really* shutting down here, so freeing the module
-        data is required.  */
-      if (info)
-       {
-         m4_module_data *stale
-           = lt_dlcaller_set_data (m4_caller_id, handle, 0);
-         XFREE (stale);
-       }
-
-      /* If we are about to unload the final reference, move on to the
-        next handle before we unload the current one.  */
-      if (info->ref_count <= 1)
-       handle = lt_dlhandle_next (pending);
-
-      errors = m4_module_remove (pending, 0);
-    }
-
-  if (!errors)
-    errors = lt_dlexit();
-
-  if (errors)
-    {
-      M4ERROR ((EXIT_FAILURE, 0,
-               _("cannot unload all modules: %s"),
-               m4_module_dlerror ()));
-    }
 }
Index: modules/m4.c
===================================================================
RCS file: /cvsroot/m4/m4/modules/m4.c,v
retrieving revision 1.35
diff -u -p -u -r1.35 m4.c
--- modules/m4.c 6 Jun 2003 16:14:06 -0000 1.35
+++ modules/m4.c 12 Jun 2003 16:31:29 -0000
@@ -555,7 +555,8 @@ M4BUILTIN_HANDLER (m4exit)
   if (argc == 2  && !m4_numeric_arg (argc, argv, 1, &exit_code))
     exit_code = 0;
 
-  m4_module_close_all (obs);
+  /* Ensure any module exit callbacks are executed.  */
+  m4__module_exit ();
 
   exit (exit_code);
 }
Index: po/cs.po
===================================================================
RCS file: /cvsroot/m4/m4/po/cs.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 cs.po
--- po/cs.po 30 May 2003 15:13:32 -0000 1.27
+++ po/cs.po 12 Jun 2003 16:31:29 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4n\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1998-12-07 22:02+01:00\n"
 "Last-Translator: Jiøí Pavlovský <address@hidden>\n"
 "Language-Team: Czech <address@hidden>\n"
@@ -154,23 +154,34 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Chyba pøi porovnávání regulárního výrazu `%s'"
 
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+# , c-format
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Jméno %s není definováno"
+
 # , c-format
-#: m4/input.c:233
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Vstup èten z %s, øádku %d"
 
 # , c-format
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Vstup èten z %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "®ÁDNÝ"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "CHYBA: EOF v øetìzci"
@@ -181,11 +192,16 @@ msgid "EOF in argument list"
 msgstr "CHYBA: EOF v seznamu argumentù"
 
 # , c-format
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr "CHYBA: pøekroèen limit pro rekurzi (%d), zmìòte jej pomocí -L<N>"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -290,7 +306,7 @@ msgid "Path search for `%s' found `%s'"
 msgstr "Hledán soubor `%s', nalezen soubor `%s'"
 
 # , c-format
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Jméno `%s' není známo\n"
@@ -396,20 +412,20 @@ msgid "Warning: cannot make module `%s' 
 msgstr "CHYBA: modul `%s' nelze nalézt"
 
 # , c-format
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Jméno %s není definováno"
 
 # , c-format
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Chyba pøi volání makra undivert pro %s"
 
 # , c-format
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "%s nelze otevøít"
@@ -430,17 +446,17 @@ msgstr "Ve zmrazeném souboru oèekáván LF
 msgid "Expecting character `%c' in frozen file"
 msgstr "Ve zmrazeném souboru oèekáván znak `%c'"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Pøedèasný konec zmrazeného souboru"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "©patný formát zmrazeného souboru"
 
 # , c-format
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "`%s' ze zmrazeného souboru nenalezeno v tabulce vestavìných maker!"
Index: po/de.po
===================================================================
RCS file: /cvsroot/m4/m4/po/de.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 de.po
--- po/de.po 30 May 2003 15:13:32 -0000 1.27
+++ po/de.po 12 Jun 2003 16:31:29 -0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4ppre2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1999-03-20 00:46+01:00\n"
 "Last-Translator: Martin von Löwis <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -152,23 +152,33 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Fehler beim Erkennen des regulären Ausdrucks »%s«"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Name %s nicht definiert"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Eingabe zurückgenommen zu %s, Zeile %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Eingabe gelesen von %s"
 
 # This is the name of the input file when there is no current input file.
 # Is this ever printed in a message?
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "NONE"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "FEHLER: Dateiende in Zeichenkette"
@@ -178,12 +188,17 @@ msgstr "FEHLER: Dateiende in Zeichenkett
 msgid "EOF in argument list"
 msgstr "FEHLER: Dateiende in Argumentliste"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 "FEHLER: Grenze der Rekursion von %d überschritten, benutze -L<N> zur Änderung"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -279,7 +294,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "Pfad für Suche nach »%s« hat »%s« gefunden"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Name »%s« ist unbekannt\n"
@@ -368,18 +383,18 @@ msgstr "WARNUNG: \\0 wird wegfallen, ben
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr "FEHLER: Kann Module »%s« nicht finden."
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Name %s nicht definiert"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Kann Umleitung %s nicht aufheben"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Kann %s nicht öffnen"
@@ -398,16 +413,16 @@ msgstr "Erwarte Zeilenumbruch in eingefr
 msgid "Expecting character `%c' in frozen file"
 msgstr "Erwarte Zeichen »%c« in eingefrorener Datei"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Vorzeitiges Ende der eingefrorenen Datei"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Fehlerhafte eingefrorene Datei"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr ""
Index: po/el.po
===================================================================
RCS file: /cvsroot/m4/m4/po/el.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 el.po
--- po/el.po 30 May 2003 15:13:32 -0000 1.27
+++ po/el.po 12 Jun 2003 16:31:29 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU m4 1.4n\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1999-06-24 00:25+0000\n"
 "Last-Translator: Simos Xenitellis <address@hidden>\n"
 "Language-Team: Greek <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "ÓöÜëìá óôï ôáßñéáóìá óôçí êáíïíéêÞ Ýêöñáóç `%s'"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Ìç ïñéóìÝíï üíïìá %s"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Ç åßóïäïò åðáíáöÝñèçêå óôï %s, ãñáììÞ %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Ç åßóïäïò áíáãíþóôçêå áðü ôï %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "ÊÁÍÅÍÁ"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "ÓÖÁËÌÁ: EOF óôï áëöáñéèìçôéêü"
@@ -174,13 +184,18 @@ msgstr "ÓÖÁËÌÁ: EOF óôï áëöáñéèìçôéêü"
 msgid "EOF in argument list"
 msgstr "ÓÖÁËÌÁ: EOF óôç ëßóôá ïñéóìÜôùí"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 "ÓÖÁËÌÁ: Ôï üñéï áíáäñïìÞò %d îåðåñÜóôçêå, êÜíôå ÷ñÞóç ôïõ -L<N> ãéá íá ôï "
 "áëëÜîåôå"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -276,7 +291,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "Ï Ýëåã÷ïò ìïíïðáôéïý ãéá ôï `%s' âñÞêå `%s'"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Ôï üíïìá `%s' åßíáé Üãíùóôï\n"
@@ -367,18 +382,18 @@ msgstr ""
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr "ÓÖÁËÌÁ: áäõíáìßá åýñåóçò Üñèñùóçò `%s'"
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Ìç ïñéóìÝíï üíïìá %s"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Áäõíáìßá åðáíáöïñÜò ôïõ %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Áäõíáìßá áíïßãìáôïò ôïõ %s"
@@ -397,16 +412,16 @@ msgstr "Áíáìåíüôáí `line feed' óôï ðáãùì
 msgid "Expecting character `%c' in frozen file"
 msgstr "Áíáìåíüôáí ÷áñáêôÞñáò `%c' óôï ðáãùìÝíï áñ÷åßï"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Ðñüùñï ôÝëïò ðáãùìÝíïõ áñ÷åßïõ"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Êáêü-ìïñöïðïéçìÝíï ðáãùìÝíï áñ÷åßï"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "ôï `%s' áðü ðáãùìÝíï áñ÷åßï äå âñÝèçêå óôïí ðßíáêá åóùäïìçìÝíùí"
Index: po/fr.po
===================================================================
RCS file: /cvsroot/m4/m4/po/fr.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 fr.po
--- po/fr.po 30 May 2003 15:13:32 -0000 1.27
+++ po/fr.po 12 Jun 2003 16:31:30 -0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4d\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1998-05-23 11:53+02:00\n"
 "Last-Translator: Erick Branderhorst <address@hidden>\n"
 "Language-Team: dutch <address@hidden>\n"
@@ -152,21 +152,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Erreur d'appariement pour l'expressio régulière «%s»"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Nom «%s» non-défini"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Entrée reprise de %s, ligne %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Entrée lue de %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "AUCUN"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "ERREUR: Fin-de-fichier dans la chaîne"
@@ -176,11 +186,16 @@ msgstr "ERREUR: Fin-de-fichier dans la c
 msgid "EOF in argument list"
 msgstr "ERREUR: Fin-de-fichier dans la liste d'arguments"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr "ERREUR: Limite de récursion %d dépassée, la changer par -L<N>"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -276,7 +291,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "La fouille du chemin pour «%s» trouve «%s»"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Le nom «%s» est inconnu\n"
@@ -365,18 +380,18 @@ msgstr "ATTENTION: \\\\0 disparaîtra, ut
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr ""
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Nom «%s» non-défini"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Incapble de ramener la diversion %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Incapable d'ouvrir %s"
@@ -395,16 +410,16 @@ msgstr "Fin-de-ligne attendue du fichier
 msgid "Expecting character `%c' in frozen file"
 msgstr "Caractère «%c» attendu du fichier figé"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Fin prématurée de fichier figé"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Fichier figé difforme"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "«%s» dans le fichier figé est introuvable dans la table des 
prédéfinis!"
Index: po/it.po
===================================================================
RCS file: /cvsroot/m4/m4/po/it.po,v
retrieving revision 1.28
diff -u -p -u -r1.28 it.po
--- po/it.po 30 May 2003 15:13:32 -0000 1.28
+++ po/it.po 12 Jun 2003 16:31:30 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU M4\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 2002-11-04 13:19+0100\n"
 "Last-Translator: full name <address@hidden>\n"
 "Language-Team: Italian <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Errore nel confronto dell' espressione regolare `%s'"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Nome `%s' non definito"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Ingresso ripristinato su %s, linea %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Errore di lettura da %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "NESSUNO"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "ERRORE: Fine prematura di una stringa"
@@ -174,11 +184,16 @@ msgstr "ERRORE: Fine prematura di una st
 msgid "EOF in argument list"
 msgstr "ERRORE: Fine prematura della lista di argomenti"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -274,7 +289,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "La ricerca del percorso per `%s' ha trovato `%s'"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Il nome `%s'  sconosciuto\n"
@@ -363,18 +378,18 @@ msgstr ""
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr ""
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Nome `%s' non definito"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Impossibile ripristinare la deviazione %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Impossibile aprire %s"
@@ -393,16 +408,16 @@ msgstr "Atteso il carattere di fine line
 msgid "Expecting character `%c' in frozen file"
 msgstr "Atteso il carattere `%c' in archivio congelato"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Fine prematura dell' archivio congelato"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Archivio congelato malformato"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr ""
Index: po/ja.po
===================================================================
RCS file: /cvsroot/m4/m4/po/ja.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 ja.po
--- po/ja.po 30 May 2003 15:13:32 -0000 1.27
+++ po/ja.po 12 Jun 2003 16:31:30 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU m4 1.4.3\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1996-03-28 11:52 EST\n"
 "Last-Translator: Akiko Matsushita <address@hidden>\n"
 "Language-Team: Japanese <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Àµµ¬É½¸½¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "¥Õ¥¡¥¤¥ë %s, %d ¹ÔÌܤ«¤éÆþÎϤ·Ä¾¤·¤Þ¤¹¡£"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "%s ¤«¤é¤ÎÆþÎϤòÆɤ߹þ¤ß¤Þ¤¹¡£"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "¤Ê¤·"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "¥¨¥é¡¼: ʸ»úÎóÆâ¤Ë¥Õ¥¡¥¤¥ë¤Î½ªÃ¼µ­¹æ¤¬¤¢¤ê¤Þ¤¹¡£"
@@ -174,13 +184,18 @@ msgstr "¥¨¥é¡¼: ʸ»úÎóÆâ¤Ë¥Õ¥¡¥¤¥ë¤Î½ªÃ¼
 msgid "EOF in argument list"
 msgstr "¥¨¥é¡¼: °ú¿ô¥ê¥¹¥ÈÆâ¤Ë¥Õ¥¡¥¤¥ë¤Î½ªÃ¼µ­¹æ¤¬¤¢¤ê¤Þ¤¹¡£"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 "¥¨¥é¡¼¡§ºÆµ¢ÅªÄêµÁ¤Î¥Í¥¹¥È¤¬»ØÄꤵ¤ì¤¿ÃÍ %d ¤òĶ¤¨¤Æ¤¤¤Þ¤¹¡£\n"
 "        -L<¿ô»ú> ¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¥Í¥¹¥È¿ô¤Î¾å¸Â¤òÁý¤ä¤·¤Æ²¼¤µ¤¤¡£"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -278,7 +293,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "`%s' ¤È¤¤¤¦¥Ç¥£¥ì¥¯¥È¥ê¤«¤é `%s' ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤Þ¤·¤¿¡£"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£\n"
@@ -367,18 +382,18 @@ msgstr "·Ù¹ð¡§\\0 ¤Ïµì¼°¤ÎÍÑË¡¤Ç¤¹¡£\\& 
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr ""
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "`%s' ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "`%s' ¤ò undivert ¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "`%s' ¤ò¥ª¡¼¥×¥ó¤Ç¤­¤Þ¤»¤ó¡£"
@@ -397,16 +412,16 @@ msgstr "Åà·ë¥Õ¥¡¥¤¥ëÆâ¤Ç²þ¹Ô¥³¡¼¥É¤ò´üÂÔ
 msgid "Expecting character `%c' in frozen file"
 msgstr "Åà·ë¥Õ¥¡¥¤¥ëÆâ¤Çʸ»ú `%c' ¤ò´üÂÔ¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î EOF ¤¬Á᤯Íè²á¤®¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "ÆâÉô¥¨¥é¡¼¡§Åà·ë¥Õ¥¡¥¤¥ë¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤¬ÉÔÀµ¤Ç¤¹¡£"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "Åà·ë¥Õ¥¡¥¤¥ë¤Î %s ¤Ï¥Ó¥ë¥È¥¤¥ó¥³¥Þ¥ó¥É¤Î¥Æ¡¼¥Ö¥ë¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
Index: po/nl.po
===================================================================
RCS file: /cvsroot/m4/m4/po/nl.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 nl.po
--- po/nl.po 30 May 2003 15:13:32 -0000 1.27
+++ po/nl.po 12 Jun 2003 16:31:30 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4d\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1998-05-23 09:27+02:00\n"
 "Last-Translator: Erick Branderhorst <address@hidden>\n"
 "Language-Team: dutch <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Fout overeenkomen reguliere expressies `%s'"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Ongedefinieerde naam %s"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Invoer reverted naar %s, lijn %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Invoer gelezen vanuit %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "GEEN"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "FOUT: Einde van bestand teken in string"
@@ -174,12 +184,17 @@ msgstr "FOUT: Einde van bestand teken in
 msgid "EOF in argument list"
 msgstr "FOUT: Einde van bestand teken in argumentenlijst"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 "FOUT: Recursie limiet of %d overschreden, gebruik -L<N> om dit te wijzigen"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -275,7 +290,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "Zoeken naar `%s' via PATH levert `%s'"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Naam `%s' is niet bekend\n"
@@ -364,18 +379,18 @@ msgstr "LET OP: \\0 zal verdwijnen, gebr
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr ""
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Ongedefinieerde naam %s"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Cannot undivert %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Kan %s niet openen"
@@ -394,16 +409,16 @@ msgstr "Verwacht nieuwe regel in gefixee
 msgid "Expecting character `%c' in frozen file"
 msgstr "Verwacht karakter `%c' in gefixeerd bestand"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Voorbarig einde van gefixeerd bestand"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Slecht geformateerd gefixeerd bestand"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "`%s' van gefixeerd bestand niet gevonden in functie tabel!"
Index: po/pl.po
===================================================================
RCS file: /cvsroot/m4/m4/po/pl.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 pl.po
--- po/pl.po 30 May 2003 15:13:32 -0000 1.27
+++ po/pl.po 12 Jun 2003 16:31:30 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4n\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1999-05-03 19:47+0200\n"
 "Last-Translator: Rafa³ Maszkowski <address@hidden>\n"
 "Language-Team: Polish <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "B³±d dopasowania do wyra¿enia regularnego `%s'"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Niezdefiniowana nazwa %s"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Dane wej¶ciowe wycofane do %s, linia %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Dane wej¶ciowe przeczytane z %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "¯ADEN"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "B£¡D: EOF w ³añcuchu"
@@ -174,11 +184,16 @@ msgstr "B£¡D: EOF w ³añcuchu"
 msgid "EOF in argument list"
 msgstr "B£¡D: EOF w li¶cie argumentów"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr "B£¡D: Osi±gniêty limit rekursji %d, u¿yj -L<N> ¿eby go zmieniæ"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -274,7 +289,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "Przeszukanie ¶cie¿ki dla `%s' znalaz³o `%s'"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Nazwa `%s' jest nieznana\n"
@@ -363,18 +378,18 @@ msgstr "UWAGA: \\0 zniknie, w podstawien
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr "B£¡D: nie mo¿na znale¼æ modu³u `%s'"
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Niezdefiniowana nazwa %s"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Nie mogê przetowrzyæ z powrotem %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Nie mogê otworzyæ %s"
@@ -393,16 +408,16 @@ msgstr "Oczekiwany line fedd w pliku zam
 msgid "Expecting character `%c' in frozen file"
 msgstr "Oczekiwany znak `%c' w pliku zamro¿onym"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "Przedwczesny koniec pliku zamro¿onego"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "¬le sformatowy plik zamro¿ony"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "`%s' z pliku zamro¿onego nie znalezione w tablicy wbudowanych!"
Index: po/ru.po
===================================================================
RCS file: /cvsroot/m4/m4/po/ru.po,v
retrieving revision 1.27
diff -u -p -u -r1.27 ru.po
--- po/ru.po 30 May 2003 15:13:32 -0000 1.27
+++ po/ru.po 12 Jun 2003 16:31:30 -0000
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4n\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1999-04-17 20:58\n"
 "Last-Translator: Denis Y. Pershin <address@hidden>\n"
 "Language-Team: Russian <address@hidden>\n"
@@ -150,21 +150,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "îÅÔ ÐÒÅÄÛÅÄÓÔ×ÕÀÝÅÇÏ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ"
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "÷×ÏÄ ÐÅÒÅÎÁÐÒÁ×ÌÅÎ × %s , ÓÔÒÏËÁ %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "÷×ÏÄ ÉÚ %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "îéþåçï"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "ïûéâëá: ëÏÎÅà ÆÁÊÌÁ × ÓÔÒÏËÅ"
@@ -174,12 +184,17 @@ msgstr "ïûéâëá: ëÏÎÅà ÆÁÊÌÁ × ÓÔÒÏËÅ"
 msgid "EOF in argument list"
 msgstr "ïûéâëá: ëÏÎÅà ÆÁÊÌÁ × ÓÐÉÓËÅ ÁÒÇÕÍÅÎÔÏ×"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr ""
 "ïûéâëá: ìÉÍÉÔ ÒÅËÕÒÓÉÉ %d ÉÓÞÅÒÐÁÎ, ÉÓÐÏÌØÚÕÊÔÅ -L<N> ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÅÇÏ"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -276,7 +291,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "ðÕÔØ ÐÏÉÓËÁ ÄÌÑ `%s' ÎÁÊÄÅÎ `%s'"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "éÍÑ `%s' ÎÅÉÚ×ÅÓÔÎÏ\n"
@@ -365,18 +380,18 @@ msgstr "ðòåäõðòåöäåîéå: \\0 ÉÓÞÅÚÎÅÔ, ÉÓ
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr "ïûéâëá: ÍÏÄÕÌØ `%s' ÎÅ ÎÁÊÄÅÎ"
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "éÍÑ %s ÎÅÏÐÒÅÄÅÌÅÎÏ"
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "îÅ×ÏÚÍÏÖÎÏ ×ÅÒÎÕÔØ ×Ù×ÏÄ ÉÚ %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s"
@@ -395,16 +410,16 @@ msgstr "ïÖÉÄÁÅÔÓÑ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ÆÁÊÌÅ
 msgid "Expecting character `%c' in frozen file"
 msgstr "ïÖÉÄÁÅÔÓÑ ÓÉÍ×ÏÌ '%c' × ÆÁÊÌÅ-ÏÂÒÁÚÅ ÐÁÍÑÔÉ"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "îÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "'%s' ÉÚ ÆÁÊÌÁ-ÏÂÒÁÚÁ ÐÁÍÑÔÉ ÎÅ ÎÁÊÄÅÎÁ ×Ï ×ÓÔÒÏÅÎÎÏÊ ÔÁÂÌÉÃÅ!"
Index: po/sv.po
===================================================================
RCS file: /cvsroot/m4/m4/po/sv.po,v
retrieving revision 1.28
diff -u -p -u -r1.28 sv.po
--- po/sv.po 30 May 2003 15:13:32 -0000 1.28
+++ po/sv.po 12 Jun 2003 16:31:30 -0000
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: m4 1.4n\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-05-30 14:35+0100\n"
+"POT-Creation-Date: 2003-06-11 17:47+0100\n"
 "PO-Revision-Date: 1999-03-28 18:56 +02:00\n"
 "Last-Translator: Jan Djärv <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
@@ -151,21 +151,31 @@ msgstr ""
 msgid "No previous regular expression"
 msgstr "Fel när reguljäruttrycket \"%s\" matchades"
 
-#: m4/input.c:233
+#: m4/builtin.c:175
+#, c-format
+msgid "Error: %s: syntax error in parameter list at char `%c'"
+msgstr ""
+
+#: m4/builtin.c:196
+#, fuzzy, c-format
+msgid "Warning: %s: unterminated parameter list"
+msgstr "Odefinierat namn \"%s\""
+
+#: m4/input.c:234
 #, c-format
 msgid "Input reverted to %s, line %d"
 msgstr "Indata återgår till %s, rad %d"
 
-#: m4/input.c:261
+#: m4/input.c:262
 #, c-format
 msgid "Input read from %s"
 msgstr "Indata läses från %s"
 
-#: m4/input.c:680
+#: m4/input.c:687
 msgid "NONE"
 msgstr "INGET"
 
-#: m4/input.c:840 m4/input.c:870
+#: m4/input.c:847 m4/input.c:877
 #, fuzzy
 msgid "EOF in string"
 msgstr "FEL: Filslut i sträng"
@@ -175,11 +185,16 @@ msgstr "FEL: Filslut i sträng"
 msgid "EOF in argument list"
 msgstr "FEL: Filslut i argumentlistan"
 
-#: m4/macro.c:272
+#: m4/macro.c:273
 #, c-format
 msgid "ERROR: Recursion limit of %d exceeded, use -L<N> to change it"
 msgstr "FEL: Rekursionsgräns %d överskriden, använd -L<N> för att ändra"
 
+#: m4/macro.c:397
+#, c-format
+msgid "Error: %s: unterminated parameter reference: %s"
+msgstr ""
+
 #: m4/module.c:159
 msgid "unknown error"
 msgstr ""
@@ -275,7 +290,7 @@ msgstr ""
 msgid "Path search for `%s' found `%s'"
 msgstr "\"%s\" hittades som \"%s\" i sökvägen"
 
-#: m4/symtab.c:386
+#: m4/symtab.c:393
 #, c-format
 msgid "Name `%s' is unknown\n"
 msgstr "Namnet \"%s\" är okänt\n"
@@ -364,18 +379,18 @@ msgstr "VARNING: \\0 kommer att försvinn
 msgid "Warning: cannot make module `%s' resident: %s"
 msgstr "FEL: kan inte hitta modul \"%s\""
 
-#: modules/m4.c:183 modules/m4.c:222 modules/m4.c:347 modules/m4.c:615
-#: modules/m4.c:635
+#: modules/m4.c:179 modules/m4.c:214 modules/m4.c:339 modules/m4.c:605
+#: modules/m4.c:625
 #, fuzzy, c-format
 msgid "Warning: %s: undefined name: %s"
 msgstr "Odefinierat namn \"%s\""
 
-#: modules/m4.c:456
+#: modules/m4.c:446
 #, c-format
 msgid "Cannot undivert %s"
 msgstr "Kan inte återleda %s"
 
-#: modules/m4.c:515 src/freeze.c:385
+#: modules/m4.c:505 src/freeze.c:385
 #, c-format
 msgid "Cannot open %s"
 msgstr "Kan inte öppna %s"
@@ -394,16 +409,16 @@ msgstr "Nyrad förväntas i fryst fil"
 msgid "Expecting character `%c' in frozen file"
 msgstr "Tecknet \"%c\" förväntas i fryst fil"
 
-#: src/freeze.c:358 src/freeze.c:541
+#: src/freeze.c:358 src/freeze.c:549
 msgid "Premature end of frozen file"
 msgstr "För tidigt filslut i fryst fil"
 
-#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:503 src/freeze.c:521
-#: src/freeze.c:639
+#: src/freeze.c:398 src/freeze.c:440 src/freeze.c:511 src/freeze.c:529
+#: src/freeze.c:647
 msgid "Ill-formated frozen file"
 msgstr "Korrupt fryst fil"
 
-#: src/freeze.c:488
+#: src/freeze.c:496
 #, c-format
 msgid "`%s' from frozen file not found in builtin table!"
 msgstr "\"%s\" från fryst fil hittades inte i tabellen för inbyggda makron!"
Index: src/freeze.c
===================================================================
RCS file: /cvsroot/m4/m4/src/freeze.c,v
retrieving revision 1.23
diff -u -p -u -r1.23 freeze.c
--- src/freeze.c 5 Jun 2003 16:12:16 -0000 1.23
+++ src/freeze.c 12 Jun 2003 16:31:30 -0000
@@ -517,7 +517,7 @@ reload_frozen_state (const char *name)
        GET_STRING (file, string[0], allocated[0], number[0]);
        VALIDATE ('\n');
 
-       m4_module_open (string[0], NULL);
+       m4__module_open (string[0], NULL);
 
        break;
 
Index: src/main.c
===================================================================
RCS file: /cvsroot/m4/m4/src/main.c,v
retrieving revision 1.35
diff -u -p -u -r1.35 main.c
--- src/main.c 5 Jun 2003 16:12:16 -0000 1.35
+++ src/main.c 12 Jun 2003 16:31:30 -0000
@@ -102,12 +102,12 @@ Operation modes:\n\
   -Q, --quiet, --silent        suppress some warnings for builtins\n\
   -P, --prefix-builtins        force a `m4_' prefix to all builtins\n"),
             stdout);
-      fputs (_("\
+      printf (_("\
 \n\
 Dynamic loading features:\n\
   -M, --module-directory=DIRECTORY  add DIRECTORY to the module search path\n\
-  -m, --load-module=MODULE          load dynamic MODULE from M4MODPATH\n"),
-            stdout);
+  -m, --load-module=MODULE          load dynamic MODULE from %s\n"),
+            USER_MODULE_PATH_ENV);
       fputs (_("\
 \n\
 Preprocessor features:\n\
@@ -225,7 +225,7 @@ main (int argc, char *const *argv, char 
 
   LTDL_SET_PRELOADED_SYMBOLS();
 
-  m4_module_init ();
+  m4__module_init ();
   m4_debug_init ();
   m4_include_init ();
   m4_symtab_init ();
@@ -521,13 +521,12 @@ warranty; not even for MERCHANTABILITY o
       m4_undivert_all ();
     }
 
-  m4_module_unload_all ();
-
   /* The remaining cleanup functions systematically free all of the
      memory we still have pointers to.  By definition, if there is
      anything left when we're done: it was caused by a memory leak.
      Strictly, we don't need to do this, but it makes leak detection
      a whole lot easier!  */
+  m4__module_exit ();
   m4_symtab_exit ();
   m4_syntax_exit ();
   m4_output_exit ();

reply via email to

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