From: Earnie B. <ea...@us...> - 2001-10-15 22:22:38
|
Update of /cvsroot/mingw/msys/rt/src/winsup/utils In directory usw-pr-cvs1:/tmp/cvs-serv30329/winsup/utils Modified Files: ChangeLog Makefile.in cygpath.cc mount.cc Log Message: Merge in cygwin-1.3.3 Index: ChangeLog =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/utils/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 2001/10/14 14:57:52 1.3 --- ChangeLog 2001/10/15 22:22:33 1.4 *************** *** 1,2 **** --- 1,51 ---- + 2001-09-09 Egor Duda <de...@lo...> + + * dumper.cc (main): Change command-line arguments format to be + similar to gdb. Allow adding error_start=x:\path\to\dumper.exe to + CYGWIN environment variable to perform core dumping in case of + program crash. + (usage): Ditto. + + Wed Sep 5 22:37:21 2001 Christopher Faylor <cg...@cy...> + + * Makefile.in (dumper): Change logic for libbfd and libintl so that + they will be found either in the build tree or the installed directory. + * mkpasswd.c (enum_users): Add a comment as a password for NT. + + 2001-09-03 Michael A Chase <mc...@ix...> + + * mount.cc (mount_commands): Don't write /cygdrive/u mount points. + + 2001-09-03 Michael A Chase <mc...@ix...> + + * mount.cc (longopts): Add mount-commands to options list. + (usage): Add mount-commands option. + (mount_commands): New function. Write commands to recreate current + mounts. + + Sat Sep 1 15:58:11 2001 Christopher Faylor <cg...@cy...> + + * mount.cc (main): Eliminate excess arguments in printf. + + 2001-08-30 Egor Duda <de...@lo...> + + * dumper.h: Update copyright notice. + * dumper.cc: Ditto. + * dumper.cc: (dumper::print_core_section_list): New function. + * dumper.h: (dumper::print_core_section_list): Declare it. + * dumper.cc (print_section_name): New function. + (dumper::collect_process_information): Augment debugging output. + Stop debugee processing if it posts double exception. + (usage): Fix typo in option name. + + Tue Aug 28 14:45:02 2001 Christopher Faylor <cg...@cy...> + + * mount.cc (main): Issue correct warning for 'not enough arguments'. + + 2001-08-14 Joerg Schaible <joe...@gm...> + + * cygpath.cc (main): Support -w for Windows (System) directories and + return physical correct orthography for the Windows System dir. + 2001-07-14 Chris Genly <ch...@al...> *************** *** 52,56 **** 2001-04-15 Michael A Chase <mc...@ix...> ! * mount.cc (longopts): Add help to options list. (opts): Add 'h' to options string. --- 101,105 ---- 2001-04-15 Michael A Chase <mc...@ix...> ! * mount.cc (longopts): Add help to options list. (opts): Add 'h' to options string. Index: Makefile.in =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/utils/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 2001/09/22 17:43:45 1.2 --- Makefile.in 2001/10/15 22:22:33 1.3 *************** *** 38,44 **** MINGW_INCLUDES:=-I/usr/include/mingw -I$(cygwin_source)/include -I$(w32api_include) ! libbfd:=$(bupdir2)/bfd/libbfd.a ! libintl:=$(bupdir2)/intl/libintl.a ! build_dumper:=${shell test -r $(libbfd) -a -r $(libintl) -a -d $(updir1)/include && echo 1} DUMPER_INCLUDES:=-I$(bupdir2)/bfd -I$(updir1)/include --- 38,44 ---- MINGW_INCLUDES:=-I/usr/include/mingw -I$(cygwin_source)/include -I$(w32api_include) ! libbfd:=${shell $(CC) -L$(bupdir2)/bfd --print-file-name=libbfd.a} ! libintl:=${shell $(CC) -L$(bupdir2)/intl --print-file-name=libintl.a} ! build_dumper:=${shell test -r $(libbfd) && test -r ${libintl} && echo 1} DUMPER_INCLUDES:=-I$(bupdir2)/bfd -I$(updir1)/include Index: cygpath.cc =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/utils/cygpath.cc,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** cygpath.cc 2001/08/07 17:51:24 1.1.1.1 --- cygpath.cc 2001/10/15 22:22:33 1.2 *************** *** 209,212 **** --- 209,213 ---- char *filename; char buf[MAX_PATH], buf2[MAX_PATH]; + WIN32_FIND_DATA w32_fd; prog_name = strrchr (argv[0], '/'); *************** *** 267,271 **** case 'W': GetWindowsDirectory(buf, MAX_PATH); ! cygwin_conv_to_posix_path(buf, buf2); printf("%s\n", buf2); exit(0); --- 268,275 ---- case 'W': GetWindowsDirectory(buf, MAX_PATH); ! if (!windows_flag) ! cygwin_conv_to_posix_path(buf, buf2); ! else ! strcpy(buf2, buf); printf("%s\n", buf2); exit(0); *************** *** 273,277 **** case 'S': GetSystemDirectory(buf, MAX_PATH); ! cygwin_conv_to_posix_path(buf, buf2); printf("%s\n", buf2); exit(0); --- 277,286 ---- case 'S': GetSystemDirectory(buf, MAX_PATH); ! FindFirstFile(buf, &w32_fd); ! strcpy(strrchr(buf, '\\')+1, w32_fd.cFileName); ! if (!windows_flag) ! cygwin_conv_to_posix_path(buf, buf2); ! else ! strcpy(buf2, buf); printf("%s\n", buf2); exit(0); Index: mount.cc =================================================================== RCS file: /cvsroot/mingw/msys/rt/src/winsup/utils/mount.cc,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** mount.cc 2001/08/07 17:51:24 1.1.1.1 --- mount.cc 2001/10/15 22:22:33 1.2 *************** *** 23,26 **** --- 23,27 ---- #include <errno.h> + static void mount_commands (void); static void show_mounts (void); static void show_cygdrive_info (void); *************** *** 99,106 **** {"show-cygdrive-prefix", no_argument, NULL, 'p'}, {"import-old-mounts", no_argument, NULL, 'i'}, {NULL, 0, NULL, 0} }; ! char opts[] = "hbfstuxXpic"; static void --- 100,108 ---- {"show-cygdrive-prefix", no_argument, NULL, 'p'}, {"import-old-mounts", no_argument, NULL, 'i'}, + {"mount-commands", no_argument, NULL, 'm'}, {NULL, 0, NULL, 0} }; ! char opts[] = "hbfstuxXpicm"; static void *************** *** 122,125 **** --- 124,129 ---- -X, --cygwin-executable treat all files under mount point as cygwin\n\ executables\n\ + -m, --mount-commands write mount commands to replace user and\n\ + system mount points and cygdrive prefixes\n\ ", progname); exit (1); *************** *** 136,140 **** saw_change_cygdrive_prefix, saw_import_old_mounts, ! saw_show_cygdrive_prefix } do_what = nada; --- 140,145 ---- saw_change_cygdrive_prefix, saw_import_old_mounts, ! saw_show_cygdrive_prefix, ! saw_mount_commands } do_what = nada; *************** *** 189,192 **** --- 194,203 ---- flags |= MOUNT_EXEC; break; + case 'm': + if (do_what == nada) + do_what = saw_mount_commands; + else + usage (); + break; default: usage (); *************** *** 212,219 **** show_cygdrive_info (); break; default: if (optind != (argc - 1)) { ! fprintf (stderr, "%s: too many arguments\n", progname); usage (); } --- 223,238 ---- show_cygdrive_info (); break; + case saw_mount_commands: + if (optind <= argc) + usage (); + mount_commands (); + break; default: if (optind != (argc - 1)) { ! if (optind >= argc) ! fprintf (stderr, "%s: not enough arguments\n", progname); ! else ! fprintf (stderr, "%s: too many arguments\n", progname); usage (); } *************** *** 229,232 **** --- 248,310 ---- /* NOTREACHED */ return 0; + } + + static void + mount_commands (void) + { + FILE *m = setmntent ("/-not-used-", "r"); + struct mntent *p; + char *c; + const char *format_mnt = "mount%s \"%s\" \"%s\"\n"; + const char *format_cyg = "mount%s --change-cygdrive-prefix \"%s\"\n"; + char opts[MAX_PATH]; + char user[MAX_PATH]; + char system[MAX_PATH]; + char user_flags[MAX_PATH]; + char system_flags[MAX_PATH]; + + // write mount commands for user and system mount points + while ((p = getmntent (m)) != NULL) { + // Only list non-cygdrives + if (!strstr (p->mnt_opts, ",noumount")) { + strcpy(opts, " -f"); + if (p->mnt_type[0] == 'u') + strcat (opts, " -u"); + else if (p->mnt_type[0] == 's') + strcat (opts, " -s"); + if (p->mnt_opts[0] == 'b') + strcat (opts, " -b"); + else if (p->mnt_opts[0] == 't') + strcat (opts, " -t"); + if (strstr (p->mnt_opts, ",exec")) + strcat (opts, " -x"); + while ((c = strchr (p->mnt_fsname, '\\')) != NULL) + *c = '/'; + printf (format_mnt, opts, p->mnt_fsname, p->mnt_dir); + } + } + endmntent (m); + + // write mount commands for cygdrive prefixes + cygwin_internal (CW_GET_CYGDRIVE_INFO, user, system, user_flags, + system_flags); + if (strlen (user) > 0) { + strcpy (opts, " "); + if (user_flags[0] == 'b') + strcat (opts, " -b"); + else if (user_flags[0] == 't') + strcat (opts, " -t"); + printf (format_cyg, opts, user); + } + if (strlen (system) > 0) { + strcpy (opts, " -s"); + if (system_flags[0] == 'b') + strcat (opts, " -b"); + else if (system_flags[0] == 't') + strcat (opts, " -t"); + printf (format_cyg, opts, system); + } + + exit(0); } |