Index: /trunk/src/kmk/function.c
===================================================================
--- /trunk/src/kmk/function.c	(revision 1614)
+++ /trunk/src/kmk/function.c	(revision 1615)
@@ -1538,5 +1538,5 @@
 }
 
-/* A mix of func_eval and func_value, saves memory for the expansion. 
+/* A mix of func_eval and func_value, saves memory for the expansion.
   This implements both evalval and evalvalctx, the latter has its own
   variable context just like evalctx. */
@@ -2280,5 +2280,5 @@
 
 #ifdef CONFIG_WITH_ABSPATHEX
-/* Same as abspath except that the current path may be given as the 
+/* Same as abspath except that the current path may be given as the
    2nd argument. */
 static char *
@@ -2287,5 +2287,5 @@
   char *cwd = argv[1];
 
-  /* cwd needs leading spaces chopped and may be optional, 
+  /* cwd needs leading spaces chopped and may be optional,
      in which case we're exactly like $(abspath ). */
   while (isblank(*cwd))
@@ -2303,5 +2303,5 @@
       PATH_VAR (in);
       PATH_VAR (out);
-    
+
       while ((path = find_next_token (&p, &len)) != 0)
         {
@@ -2330,5 +2330,5 @@
                   in[len] = '\0';
                 }
-    
+
               if (abspath (in, out))
                 {
@@ -2339,10 +2339,10 @@
             }
         }
-    
+
       /* Kill last space.  */
       if (doneany)
         --o;
     }
-  
+
    return o;
 }
@@ -2668,5 +2668,5 @@
 
   comp-cmds will compare command by command, ignoring not only leading
-  and trailing spaces on each line but also leading one leading '@', 
+  and trailing spaces on each line but also leading one leading '@',
   '-', '+' and '%'
 */
@@ -2795,9 +2795,9 @@
   $(comp-cmds-ex cmds1,cmds2,not-equal-return)
 
-  Compares the two strings and return the string in the third argument 
+  Compares the two strings and return the string in the third argument
   if not equal. If equal, nothing is returned.
 
-  The comparision will be performed command by command, ignoring not 
-  only leading and trailing spaces on each line but also leading one 
+  The comparision will be performed command by command, ignoring not
+  only leading and trailing spaces on each line but also leading one
   leading '@', '-', '+' and '%'.
 */
@@ -3000,4 +3000,5 @@
   struct variable *path_var;
   unsigned i;
+  int first = 1;
   PATH_VAR (buf);
 
@@ -3055,5 +3056,8 @@
                       if (func_which_test_x (buf))
                         {
+                          if (!first)
+                            o = variable_buffer_output (o, " ", 1);
                           o = variable_buffer_output (o, buf, strlen (buf));
+                          first = 0;
                           break;
                         }
@@ -3581,8 +3585,8 @@
   if (!argv[0] || (!argv[0][0] && !argv[1]))
     {
-      len = sprintf (buf, "alloc-cur: %5lu %6luKB (/%3luMB)  hash: %5lu %2lu%%", 
-                     make_stats_allocations, 
-                     make_stats_allocated / 1024, 
-                     make_stats_allocated_sum / (1024*1024), 
+      len = sprintf (buf, "alloc-cur: %5lu %6luKB (/%3luMB)  hash: %5lu %2lu%%",
+                     make_stats_allocations,
+                     make_stats_allocated / 1024,
+                     make_stats_allocated_sum / (1024*1024),
                      make_stats_ht_lookups,
                      (make_stats_ht_collisions * 100) / make_stats_ht_lookups);
@@ -3590,5 +3594,5 @@
     }
   else
-    { 
+    {
       /* selective */
       int i;
@@ -3611,5 +3615,5 @@
             val = (make_stats_ht_collisions * 100) / make_stats_ht_lookups;
           else
-            {  
+            {
               o = variable_buffer_output (o, argv[i], strlen (argv[i]));
               continue;
@@ -3626,15 +3630,15 @@
 #ifdef CONFIG_WITH_COMMANDS_FUNC
 /* Gets all the commands for a target, separated by newlines.
- 
+
    This is useful when creating and checking target dependencies since
    it reduces the amount of work and the memory consuption. A new prefix
-   character '%' has been introduced for skipping certain lines, like 
+   character '%' has been introduced for skipping certain lines, like
    for instance the one calling this function and pushing to a dep file.
    Blank lines are also skipped.
 
-   The commands function takes exactly one argument, which is the name of 
-   the target which commands should be returned. 
-
-   The commands-sc is identical to commands except that it uses a ';' to 
+   The commands function takes exactly one argument, which is the name of
+   the target which commands should be returned.
+
+   The commands-sc is identical to commands except that it uses a ';' to
    separate the commands.
 
@@ -3678,5 +3682,5 @@
       chop_commands (cmds);
 
-      for (i = 0; i < cmds->ncommand_lines; i++) 
+      for (i = 0; i < cmds->ncommand_lines; i++)
         {
           char *p;
@@ -3689,5 +3693,5 @@
           while (isblank ((unsigned char)*p))
             p++;
-          if (*p == '\0') 
+          if (*p == '\0')
             continue;
 
@@ -3794,5 +3798,5 @@
           /* Skip it if it has a '%' prefix or is blank. */
           p = o;
-          while (isblank ((unsigned char)*o) 
+          while (isblank ((unsigned char)*o)
               || *o == '@'
               || *o == '-'
@@ -4204,5 +4208,5 @@
       /* Expand the body in the context of the arguments, adding the result to
          the variable buffer.  */
-    
+
       v->exp_count = EXP_COUNT_MAX;
       o = variable_expand_string (o, body, flen+3);
@@ -4218,5 +4222,5 @@
       if (!strcmp (funcname, "evalcall"))
         {
-          /* Evaluate the variable value without expanding it. We 
+          /* Evaluate the variable value without expanding it. We
              need a copy since eval_buffer is destructive.  */
 
