The attached implements the funtionality discussed in:

    http://cygwin.com/ml/cygwin-developers/2001-12/msg00029.html

Thanks,
Jason
Index: mkpasswd.c
===================================================================
RCS file: /cvs/src/src/winsup/utils/mkpasswd.c,v
retrieving revision 1.17
diff -u -p -r1.17 mkpasswd.c
--- mkpasswd.c  2001/12/14 17:15:37     1.17
+++ mkpasswd.c  2001/12/14 18:58:27
@@ -171,15 +171,26 @@ enum_users (LPWSTR servername, int print
          uni2ansi (buffer[i].usri3_name, username, sizeof (username));
          uni2ansi (buffer[i].usri3_full_name, fullname, sizeof (fullname));
          homedir_w32[0] = homedir_psx[0] = '\0';
-         uni2ansi (buffer[i].usri3_home_dir, homedir_w32, sizeof (homedir_w32));
-         if (print_cygpath)
-           cygwin_conv_to_posix_path (homedir_w32, homedir_psx);
+         if (passed_home_path[0] == '\0')
+           {
+             uni2ansi (buffer[i].usri3_home_dir, homedir_w32,
+                       sizeof (homedir_w32));
+             if (homedir_w32[0] != '\0')
+               {
+                 if (print_cygpath)
+                   cygwin_conv_to_posix_path (homedir_w32, homedir_psx);
+                 else
+                   psx_dir (homedir_w32, homedir_psx);
+               }
+             else
+               {
+                 strcpy (homedir_psx, "/home/");
+                 strcat (homedir_psx, username);
+               }
+           }
          else
-           psx_dir (homedir_w32, homedir_psx);
-
-         if (homedir_psx[0] == '\0')
            {
-             strcat (homedir_psx, passed_home_path);
+             strcpy (homedir_psx, passed_home_path);
              strcat (homedir_psx, username);
            }
 
@@ -394,8 +405,7 @@ usage ()
   fprintf (stderr, "   -m,--no-mount           don't use mount points for home 
dir\n");
   fprintf (stderr, "   -s,--no-sids            don't print SIDs in GCOS field\n");
   fprintf (stderr, "                           (this affects ntsec)\n");
-  fprintf (stderr, "   -p,--path-to-home path  if user account has no home dir, 
use\n");
-  fprintf (stderr, "                           path instead of /home/\n");
+  fprintf (stderr, "   -p,--path-to-home path  use specified path instead of user 
+account home dir\n");
   fprintf (stderr, "   -u,--username username  only return information for the 
specified user\n");
   fprintf (stderr, "   -?,--help               displays this message\n\n");
   fprintf (stderr, "One of `-l', `-d' or `-g' must be given on NT/W2K.\n");
@@ -504,9 +514,6 @@ main (int argc, char **argv)
            }
        }
     }
-
-  if (passed_home_path[0] == '\0')
-      strcpy (passed_home_path, "/home/");
 
   /* This takes Windows 9x/ME into account. */
   if (GetVersion () >= 0x80000000)
Fri Dec 14 14:04:37 2001  Jason Tishler <[EMAIL PROTECTED]>

        * mkpasswd.c (enum_users): Change to unconditionally use
        the --path-to-home option, if supplied by the user.  Use default
        --path-to-home option value, if appropriate.
        (usage): Change usage statement to reflect new semantics.
        (main): Remove defaulting of the --path-to-home option.

Reply via email to