* Some final cleanups, and release 3.79.
diff --git a/ChangeLog b/ChangeLog
index b6e13f9..657b170 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-04-04  Paul D. Smith  <psmith@gnu.org>
+
+	* Version 3.79 released.
+
+	* make.texinfo: Update documentation with new features for 3.79.
+
+	* function.c (func_wordlist): Don't re-order arguments to
+	wordlist.
+
 2000-04-03  Paul D. Smith  <psmith@gnu.org>
 
 	* remake.c (f_mtime): Archive member timestamps are stored as
diff --git a/NEWS b/NEWS
index 0079ffe..8a29d5c 100644
--- a/NEWS
+++ b/NEWS
@@ -39,8 +39,8 @@
 * The --debug option has changed: it now allows optional flags
   controlling the amount and type of debugging output.  By default only
   a minimal amount information is generated, displaying the names of
-  "normal" targets (not makefiles) were deemed out of date and in need
-  of being rebuilt.
+  "normal" targets (not makefiles) that were deemed out of date and in
+  need of being rebuilt.
 
   Note that the -d option behaves as before: it takes no arguments and
   all debugging information is generated.
@@ -48,6 +48,10 @@
 * The `-p' (print database) output now includes filename and linenumber
   information for variable definitions, to help debugging.
 
+* The wordlist function no longer reverses its arguments if the "start"
+  value is greater than the "end" value.  If that's true, nothing is
+  returned.
+
 * Hartmut Becker provided many updates for the VMS port of GNU make.
   See the readme.vms file for more details.
 
diff --git a/configure.in b/configure.in
index 01fafb6..7d2c68a 100644
--- a/configure.in
+++ b/configure.in
@@ -3,7 +3,7 @@
 AC_PREREQ(2.13)dnl		dnl Minimum Autoconf version required.
 AC_INIT(vpath.c)dnl		dnl A distinctive file to look for in srcdir.
 
-AM_INIT_AUTOMAKE(make, 3.78.92)
+AM_INIT_AUTOMAKE(make, 3.79)
 AM_CONFIG_HEADER(config.h)
 
 dnl Regular configure stuff
diff --git a/function.c b/function.c
index 60a02ed..dd638ae 100644
--- a/function.c
+++ b/function.c
@@ -37,7 +37,7 @@
     unsigned char minimum_args;
     unsigned char maximum_args;
     char expand_args;
-    char *(*func_ptr) PARAMS((char *output, char **argv, const char*funcname));
+    char *(*func_ptr) PARAMS ((char *output, char **argv, const char *fname));
   };
 
 
@@ -231,7 +231,7 @@
      const struct function_table_entry *table;
      const char *s;
 {
-  int len = strlen(s);
+  int len = strlen (s);
 
   for (; table->name != NULL; ++table)
     if (table->len <= len
@@ -386,7 +386,7 @@
 
 
 static char *
-func_join(o, argv, funcname)
+func_join (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -429,7 +429,7 @@
 
 
 static char *
-func_origin(o, argv, funcname)
+func_origin (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -483,7 +483,7 @@
 
 
 static char *
-func_notdir_suffix(o, argv, funcname)
+func_notdir_suffix (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -518,7 +518,7 @@
 	}
 #if defined(WINDOWS32) || defined(__MSDOS__)
       /* Handle the case of "d:foo/bar".  */
-      else if (streq(funcname, "notdir") && p2[0] && p2[1] == ':')
+      else if (streq (funcname, "notdir") && p2[0] && p2[1] == ':')
 	{
 	  p = p2 + 2;
 	  o = variable_buffer_output (o, p, len - (p - p2));
@@ -544,7 +544,7 @@
 
 
 static char *
-func_basename_dir(o, argv, funcname)
+func_basename_dir (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -603,7 +603,7 @@
 }
 
 static char *
-func_addsuffix_addprefix(o, argv, funcname)
+func_addsuffix_addprefix (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -636,7 +636,7 @@
 }
 
 static char *
-func_subst(o, argv, funcname)
+func_subst (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -649,7 +649,7 @@
 
 
 static char *
-func_firstword(o, argv, funcname)
+func_firstword (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -666,7 +666,7 @@
 
 
 static char *
-func_words(o, argv, funcname)
+func_words (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -724,7 +724,7 @@
 
 
 static char *
-func_word(o, argv, funcname)
+func_word (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -758,45 +758,42 @@
      char **argv;
      const char *funcname;
 {
-  int i=0;
-  int j=0;
+  int start, count;
 
-  /* Check the first argument.  */
+  /* Check the arguments.  */
   check_numeric (argv[0],
 		 _("non-numeric first argument to `wordlist' function"));
-  i =atoi(argv[0]);
   check_numeric (argv[1],
 		 _("non-numeric second argument to `wordlist' function"));
 
-  j = atoi(argv[1]);
+  start = atoi (argv[0]);
+  count = atoi (argv[1]) - start + 1;
 
+  if (count > 0)
+    {
+      char *p;
+      char *end_p = argv[2];
 
-  {
-    char *p;
-    char *end_p = argv[2];
+      /* Find the beginning of the "start"th word.  */
+      while (((p = find_next_token (&end_p, 0)) != 0) && --start)
+        ;
 
-    int start = (i < j) ? i : j;
-    int count = j -i ;
-    if (count < 0)
-      count = - count;
-    count ++;
+      if (p)
+        {
+          /* Find the end of the "count"th word from start.  */
+          while (--count && (find_next_token (&end_p, 0) != 0))
+            ;
 
+          /* Return the stuff in the middle.  */
+          o = variable_buffer_output (o, p, end_p - p);
+        }
+    }
 
-
-    while (((p = find_next_token (&end_p, 0)) != 0) && --start)
-      {}
-    if (p)
-      {
-	while (--count && (find_next_token (&end_p, 0) != 0))
-	  {}
-	o = variable_buffer_output (o, p, end_p - p);
-      }
-  }
   return o;
 }
 
 static char*
-func_findstring(o, argv, funcname)
+func_findstring (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -888,7 +885,7 @@
   /* Chop ARGV[1] up into words and then run each pattern through.  */
   while ((p = find_next_token (&word_iterator, &len)) != 0)
     {
-      struct a_word *w = (struct a_word *)alloca(sizeof(struct a_word));
+      struct a_word *w = (struct a_word *)alloca (sizeof (struct a_word));
       if (wordhead == 0)
 	wordhead = w;
       else
@@ -944,7 +941,7 @@
 
 
 static char *
-func_strip(o, argv, funcname)
+func_strip (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -992,18 +989,18 @@
      another special case where function arguments aren't broken up,
      just create a format string that puts them back together.  */
   for (len=0, argvp=argv; *argvp != 0; ++argvp)
-    len += strlen(*argvp) + 2;
+    len += strlen (*argvp) + 2;
 
   p = msg = alloca (len + 1);
 
   for (argvp=argv; argvp[1] != 0; ++argvp)
     {
-      strcpy(p, *argvp);
-      p += strlen(*argvp);
+      strcpy (p, *argvp);
+      p += strlen (*argvp);
       *(p++) = ',';
       *(p++) = ' ';
     }
-  strcpy(p, *argvp);
+  strcpy (p, *argvp);
 
   if (*funcname == 'e')
     fatal (reading_file, "%s", msg);
@@ -1128,7 +1125,7 @@
 }
 
 static char *
-func_wildcard(o, argv, funcname)
+func_wildcard (o, argv, funcname)
      char *o;
      char **argv;
      const char *funcname;
@@ -1197,11 +1194,11 @@
   HANDLE hProcess;
 
 
-  saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
+  saAttr.nLength = sizeof (SECURITY_ATTRIBUTES);
   saAttr.bInheritHandle = TRUE;
   saAttr.lpSecurityDescriptor = NULL;
 
-  if (DuplicateHandle(GetCurrentProcess(),
+  if (DuplicateHandle (GetCurrentProcess(),
 		      GetStdHandle(STD_INPUT_HANDLE),
 		      GetCurrentProcess(),
 		      &hIn,
@@ -1371,7 +1368,7 @@
   /* For error messages.  */
   if (reading_file != 0)
     {
-      error_prefix = (char *) alloca (strlen(reading_file->filenm)+11+4);
+      error_prefix = (char *) alloca (strlen (reading_file->filenm)+11+4);
       sprintf (error_prefix,
 	       "%s:%lu: ", reading_file->filenm, reading_file->lineno);
     }
@@ -1470,8 +1467,8 @@
       if (batch_filename) {
 	DB (DB_VERBOSE, (_("Cleaning up temporary batch file %s\n"),
                        batch_filename));
-	remove(batch_filename);
-	free(batch_filename);
+	remove (batch_filename);
+	free (batch_filename);
       }
       shell_function_pid = 0;
 
@@ -1623,7 +1620,7 @@
 #endif
 
 
-#define STRING_SIZE_TUPLE(_s) (_s), (sizeof(_s)-1)
+#define STRING_SIZE_TUPLE(_s) (_s), (sizeof (_s)-1)
 
 /* Lookup table for builtin functions.
 
@@ -1637,7 +1634,7 @@
    EXPAND_ARGS means that all arguments should be expanded before invocation.
    Functions that do namespace tricks (foreach) don't automatically expand.  */
 
-static char *func_call PARAMS((char *o, char **argv, const char *funcname));
+static char *func_call PARAMS ((char *o, char **argv, const char *funcname));
 
 
 static struct function_table_entry function_table[] =
@@ -1751,7 +1748,7 @@
   *stringp = end;
 
   /* Get some memory to store the arg pointers.  */
-  argvp = argv = (char **) alloca (sizeof(char *) * (nargs + 2));
+  argvp = argv = (char **) alloca (sizeof (char *) * (nargs + 2));
 
   /* Chop the string into arguments, then a nul.  As soon as we hit
      MAXIMUM_ARGS (if it's >0) assume the rest of the string is part of the
@@ -1833,7 +1830,7 @@
   while (*fname != '\0' && isspace ((unsigned char)*fname))
     ++fname;
 
-  cp = fname + strlen(fname) - 1;
+  cp = fname + strlen (fname) - 1;
   while (cp > fname && isspace ((unsigned char)*cp))
     --cp;
   cp[1] = '\0';
@@ -1886,5 +1883,5 @@
 
   pop_variable_scope ();
 
-  return o + strlen(o);
+  return o + strlen (o);
 }
diff --git a/make.texinfo b/make.texinfo
index 175493a..6b16027 100644
--- a/make.texinfo
+++ b/make.texinfo
@@ -8,10 +8,10 @@
 @c FSF publishers: format makebook.texi instead of using this file directly.
 
 @set RCSID $Id$
-@set EDITION 0.54
-@set VERSION 3.78.1
-@set UPDATED 09 September 1999
-@set UPDATE-MONTH September 1999
+@set EDITION 0.55
+@set VERSION 3.79
+@set UPDATED 04 April 2000
+@set UPDATE-MONTH April 2000
 @comment The ISBN number might need to change on next publication.
 @set ISBN 1-882114-80-9 @c CHANGE THIS BEFORE PRINTING AGAIN! --psmith 16jul98
 
@@ -37,7 +37,7 @@
 This is Edition @value{EDITION}, last updated @value{UPDATED},
 of @cite{The GNU Make Manual}, for @code{make}, Version @value{VERSION}.
 
-Copyright (C) 1988, '89, '90, '91, '92, '93, '94, '95, '96, '97, '98, '99
+Copyright (C) 1988, '89, '90, '91, '92, '93, '94, '95, '96, '97, '98, '99, 2000
         Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
@@ -73,7 +73,7 @@
 @author Richard M. Stallman and Roland McGrath
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1988, '89, '90, '91, '92, '93, '94, '95, '96, '97, '98
+Copyright @copyright{} 1988, '89, '90, '91, '92, '93, '94, '95, '96, '97, '98, '99, 2000
 Free Software Foundation, Inc.
 @sp 2
 Published by the Free Software Foundation @*
@@ -134,7 +134,7 @@
 * Missing::                     What GNU @code{make} lacks from other @code{make}s.
 * Makefile Conventions::        Conventions for makefiles in GNU programs.
 * Quick Reference::             A quick reference for experienced users.
-* Make Errors::                 A list of common errors generated by @code{make}.
+* Error Messages::              A list of common errors generated by @code{make}.
 * Complex Makefile::            A real example of a straightforward,
                                  but nontrivial, makefile.
 * Concept Index::               Index of Concepts
@@ -2479,7 +2479,7 @@
 If @code{.NOTPARALLEL} is mentioned as a target, then this invocation of
 @code{make} will be run serially, even if the @samp{-j} option is
 given.  Any recursively invoked @code{make} command will still be run in
-parallel if its makefile doesn't contain this target.  Any prerequisites
+parallel (unless its makefile contains this target).  Any prerequisites
 on this target are ignored.
 @end table
 
@@ -5854,8 +5854,7 @@
 and @var{e} start from 1.  If @var{s} is bigger than the number of words
 in @var{text}, the value is empty.  If @var{e} is bigger than the number
 of words in @var{text}, words up to the end of @var{text} are returned.
-If @var{s} is greater than @var{e}, @code{make} swaps them for you.  For
-example,
+If @var{s} is greater than @var{e}, nothing is returned.  For example,
 
 @example
 $(wordlist 2, 3, foo bar baz)
@@ -6060,6 +6059,12 @@
 is always invoked (even if a @code{make} variable by that name also
 exists).
 
+The @code{call} function expands the @var{param} arguments before
+assigning them to temporary variables.  This means that @var{variable}
+values containing references to builtin functions that have special
+expansion rules, like @code{foreach} or @code{if}, may not work as you
+expect.
+
 Some examples may make this clearer.
 
 This macro simply reverses its arguments:
@@ -6067,12 +6072,11 @@
 @smallexample
 reverse = $(2) $(1)
 
-foo = a b
-bar = $(call reverse,$(foo))
+foo = $(call reverse,a,b)
 @end smallexample
 
 @noindent
-Here @var{bar} will contain @samp{b a}.
+Here @var{foo} will contain @samp{b a}.
 
 This one is slightly more interesting: it defines a macro to search for
 the first instance of a program in @code{PATH}:
@@ -6803,8 +6807,6 @@
 
 @item -d
 @cindex @code{-d}
-@itemx --debug
-@cindex @code{--debug}
 @c Extra blank line here makes the table look better.
 
 Print debugging information in addition to normal processing.  The
@@ -6812,7 +6814,46 @@
 remaking, which file-times are being compared and with what results,
 which files actually need to be remade, which implicit rules are
 considered and which are applied---everything interesting about how
-@code{make} decides what to do.
+@code{make} decides what to do.  The @code{-d} option is equivalent to
+@samp{--debug=a} (see below).
+
+@item --debug[=@var{options}]
+@cindex @code{--debug}
+@c Extra blank line here makes the table look better.
+
+Print debugging information in addition to normal processing.  Various
+levels and types of output can be chosen.  With no arguments, print the
+``basic'' level of debugging.  Possible arguments are below; only the
+first character is considered, and values must be comma- or
+space-separated.
+
+@table @code
+@item a@var{ll}
+All types of debugging output is enabled.  This is equivalent to using
+@samp{-d}.
+
+@item b@var{asic}
+Basic debugging prints each target that was found to be out-of-date, and
+whether the build was successful or not.
+
+@item v@var{erbose}
+A level above @samp{basic}; includes messages about which makefiles were
+parsed, prerequisites that did not need to be rebuilt, etc.  This option
+also enables @samp{basic} messages.
+
+@item i@var{mplicit}
+Prints messages describing the implicit rule searches for each target.
+This option also enables @samp{basic} messages.
+
+@item j@var{obs}
+Prints messages giving details on the invocation of specific subcommands.
+
+@item m@var{akefile}
+By default, the above messages are not enabled while trying to remake
+the makefiles.  This option enables messages while rebuilding makefiles,
+too.  Note that the @samp{all} option does enable this option.  This
+option also enables @samp{basic} messages.
+@end table
 
 @item -e
 @cindex @code{-e}
@@ -6857,7 +6898,7 @@
 
 @item -j [@var{jobs}]
 @cindex @code{-j}
-@itemx --jobs=[@var{jobs}]
+@itemx --jobs[=@var{jobs}]
 @cindex @code{--jobs}
 Specifies the number of jobs (commands) to run simultaneously.  With no
 argument, @code{make} runs as many jobs simultaneously as possible.  If
@@ -6920,7 +6961,9 @@
 This also prints the version information given by the @samp{-v} switch
 (see below).  To print the data base without trying to remake any files,
 use @w{@samp{make -qp}}.  To print the data base of predefined rules and
-variables, use @w{@samp{make -p -f /dev/null}}.
+variables, use @w{@samp{make -p -f /dev/null}}.  The data base output
+contains filename and linenumber information for command and variable
+definitions, so it can be a useful debugging tool in complex environments.
 
 @item -q
 @cindex @code{-q}
@@ -9107,7 +9150,7 @@
 @comment included by standards.texi.
 @include make-stds.texi
 
-@node Quick Reference, Make Errors, Makefile Conventions, Top
+@node Quick Reference, Error Messages, Makefile Conventions, Top
 @appendix Quick Reference
 
 This appendix summarizes the directives, text manipulation functions,
@@ -9402,6 +9445,11 @@
 a makefile to set flags.@*
 @xref{Options/Recursion, ,Communicating Options to a Sub-@code{make}}.
 
+It is @emph{never} appropriate to use @code{MAKEFLAGS} directly on a
+command line: its contents may not be quoted correctly for use in the
+shell.  Always allow recursive @code{make}'s to obtain these values
+through the environment from its parent.
+
 @item MAKECMDGOALS
 
 The targets given to @code{make} on the command line.  Setting this
@@ -9425,11 +9473,11 @@
 @xref{Libraries/Search, ,Directory Search for Link Libraries}.
 @end table
 
-@node Make Errors, Complex Makefile, Quick Reference, Top
+@node Error Messages, Complex Makefile, Quick Reference, Top
 @comment  node-name,  next,  previous,  up
 @appendix Errors Generated by Make
 
-Here is a list of the most common errors you might see generated by
+Here is a list of the more common errors you might see generated by
 @code{make}, and some information about what they mean and how to fix
 them.
 
@@ -9575,7 +9623,7 @@
 
 @end table
 
-@node Complex Makefile, Concept Index, Make Errors, Top
+@node Complex Makefile, Concept Index, Error Messages, Top
 @appendix Complex Makefile Example
 
 Here is the makefile for the GNU @code{tar} program.  This is a
diff --git a/read.c b/read.c
index 9f35753..f934460 100644
--- a/read.c
+++ b/read.c
@@ -313,7 +313,6 @@
     { 									      \
       if (filenames != 0)						      \
         {                                                                     \
-	  int lineno = fileinfo.lineno;                                       \
 	  struct floc fi;                                                     \
 	  fi.filenm = fileinfo.filenm;                                        \
 	  fi.lineno = tgts_started;                                           \
@@ -331,7 +330,7 @@
   fileinfo.lineno = 1;
 
   pattern_percent = 0;
-/*  cmds_started = fileinfo.lineno; */
+  cmds_started = tgts_started = fileinfo.lineno;
 
   if (ISDB (DB_VERBOSE))
     {
diff --git a/tests/ChangeLog b/tests/ChangeLog
index c742ac1..aca7225 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,7 @@
+2000-04-04  Paul D. Smith  <psmith@gnu.org>
+
+	* scripts/functions/word: wordlist doesn't swap arguments anymore.
+
 2000-03-27  Paul D. Smith  <psmith@gnu.org>
 
 	* scripts/features/statipattrules: Test that static pattern rules
diff --git a/tests/scripts/functions/word b/tests/scripts/functions/word
index f786e47..36e5102 100644
--- a/tests/scripts/functions/word
+++ b/tests/scripts/functions/word
@@ -1,33 +1,33 @@
-$description = "The following test creates a makefile to test the word, words,\n"
-              ."and wordlist functions.\n";
+#                                                                    -*-perl-*-
+$description = "Test the word, words, and wordlist functions.\n";
 
-$details = "The word function will return the number of words in a variable or\n"
-          ."the word specified. The test will produce a variable with a large\n"
-          ."number of words in it, determine the number of word and then read\n"
-          ."each one back.\n";
+$details = "\
+Produce a variable with a large number of words in it,
+determine the number of words, and then read each one back.\n";
 
 open(MAKEFILE,"> $makefile");
 
 # The Contents of the MAKEFILE ...
 
-print MAKEFILE "string  := word.pl general_test2.pl   FORCE.pl word.pl generic_test.perl MAKEFILES_variable.pl \n"
-              ."string2 := \$(string) \$(string) \$(string) \$(string) \$(string) \$(string) \$(string)\n"
-              ."string3 := \$(string2) \$(string2) \$(string2) \$(string2) \$(string2) \$(string2) \$(string2)\n"
-              ."string4 := \$(string3) \$(string3) \$(string3) \$(string3) \$(string3) \$(string3) \$(string3)\n"
-              ."all: \n"
-              ."\t\@echo \$(words \$(string)) \n"
-              ."\t\@echo \$(words \$(string4)) \n"
-              ."\t\@echo \$(word 1, \$(string)) \n"
-              ."\t\@echo \$(word 100, \$(string)) \n"
-              ."\t\@echo \$(word 1, \$(string)) \n"
-              ."\t\@echo \$(word 1000, \$(string3)) \n"
-              ."\t\@echo \$(wordlist 3, 4, \$(string)) \n"
-              ."\t\@echo \$(wordlist 4, 3, \$(string)) \n"
-              ."\t\@echo \$(wordlist 1, 6, \$(string)) \n"
-              ."\t\@echo \$(wordlist 7, 5, \$(string)) \n"
-              ."\t\@echo \$(wordlist 100, 110, \$(string)) \n"
-              ."\t\@echo \$(wordlist 7, 10, \$(string2)) \n"
-;
+print MAKEFILE <<'EOF';
+string  := word.pl general_test2.pl   FORCE.pl word.pl generic_test.perl MAKEFILES_variable.pl
+string2 := $(string) $(string) $(string) $(string) $(string) $(string) $(string)
+string3 := $(string2) $(string2) $(string2) $(string2) $(string2) $(string2) $(string2)
+string4 := $(string3) $(string3) $(string3) $(string3) $(string3) $(string3) $(string3)
+all:
+	@echo $(words $(string))
+	@echo $(words $(string4))
+	@echo $(word 1, $(string))
+	@echo $(word 100, $(string))
+	@echo $(word 1, $(string))
+	@echo $(word 1000, $(string3))
+	@echo $(wordlist 3, 4, $(string))
+	@echo $(wordlist 4, 3, $(string))
+	@echo $(wordlist 1, 6, $(string))
+	@echo $(wordlist 5, 7, $(string))
+	@echo $(wordlist 100, 110, $(string))
+	@echo $(wordlist 7, 10, $(string2))
+EOF
 
 
 
@@ -35,7 +35,7 @@
 
 close(MAKEFILE);
 
-&run_make_with_options($makefile,"",&get_logfile,0);
+&run_make_with_options($makefile, "", &get_logfile);
 
 # Create the answer to what should be produced by this Makefile
 
@@ -47,7 +47,7 @@
          ."word.pl\n"
          ."\n"
 	 ."FORCE.pl word.pl\n"
-	 ."FORCE.pl word.pl\n"
+	 ."\n"
 	 ."word.pl general_test2.pl FORCE.pl word.pl generic_test.perl MAKEFILES_variable.pl\n"
 	 ."generic_test.perl MAKEFILES_variable.pl\n"
 	 ."\n"
@@ -58,13 +58,7 @@
 # to send the name of the last logfile created.  You may also use
 # the special call &get_logfile(1) which returns the same as &get_logfile(1).
 
-&compare_output($answer,&get_logfile(1));
+&compare_output($answer, &get_logfile(1));
 
 # This tells the test driver that the perl test script executed properly.
 1;
-
-
-
-
-
-
diff --git a/tests/scripts/options/dash-n b/tests/scripts/options/dash-n
index 98f1d21..35f317d 100644
--- a/tests/scripts/options/dash-n
+++ b/tests/scripts/options/dash-n
@@ -50,6 +50,11 @@
 close(MAKEFILE);
 
 &touch('b');
+# Sometimes, on my Solaris 2.5.1 box with a NetApp filesystem NFS-mounted,
+# just touching b first then a isn't good enough: the nsec field in the
+# stat result shows b is _newer_ than a once every 5 or 6 tries!!!  I've
+# no idea what this is about, but that's why there's a sleep(1) here...
+sleep(1);
 &touch('a');
 sleep(1);
 &touch('c');