* cygpath.cc (do_sysfolders): Use cygwin_conv_path.

(do_pathconv): Use cygwin_conv_path and cygwin_conv_path_list.
	* dumper.cc (main): Use cygwin_conv_path.  Allocate target path
	dynamically.
	* mkpasswd.c (current_user): Use cygwin_conv_path.
	(enum_users): Ditto.
	* ps.cc (NT_MAX_PATH): Define.
	(main): Use cygwin_conv_path.
	* regtool.cc (find_key): Ditto. Allocate target path dynamically.
	(cmd_save): Ditto.
This commit is contained in:
Corinna Vinschen 2008-03-12 12:47:09 +00:00
parent edab6053a2
commit 2b2b42cf59
6 changed files with 53 additions and 29 deletions

View File

@ -1,3 +1,16 @@
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
* cygpath.cc (do_sysfolders): Use cygwin_conv_path.
(do_pathconv): Use cygwin_conv_path and cygwin_conv_path_list.
* dumper.cc (main): Use cygwin_conv_path. Allocate target path
dynamically.
* mkpasswd.c (current_user): Use cygwin_conv_path.
(enum_users): Ditto.
* ps.cc (NT_MAX_PATH): Define.
(main): Use cygwin_conv_path.
* regtool.cc (find_key): Ditto. Allocate target path dynamically.
(cmd_save): Ditto.
2008-03-11 Brian Dessent <brian@dessent.net> 2008-03-11 Brian Dessent <brian@dessent.net>
* cygcheck.cc (find_app_on_path): Make buffer SYMLINK_MAX + 1 * cygcheck.cc (find_app_on_path): Make buffer SYMLINK_MAX + 1

View File

@ -607,7 +607,8 @@ do_sysfolders (char option)
} }
else if (!windows_flag) else if (!windows_flag)
{ {
if (cygwin_conv_to_posix_path (buf, buf2)) if (cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_RELATIVE, buf, buf2,
MAX_PATH))
fprintf (stderr, "%s: error converting \"%s\" - %s\n", fprintf (stderr, "%s: error converting \"%s\" - %s\n",
prog_name, buf, strerror (errno)); prog_name, buf, strerror (errno));
else else
@ -646,8 +647,10 @@ do_pathconv (char *filename)
{ {
char *buf; char *buf;
DWORD len; DWORD len;
int err; ssize_t err;
int (*conv_func) (const char *, char *); cygwin_conv_path_t conv_func =
(unix_flag ? CCP_WIN_A_TO_POSIX : CCP_POSIX_TO_WIN_A)
| (absolute_flag ? CCP_ABSOLUTE : CCP_RELATIVE);
if (!path_flag) if (!path_flag)
{ {
@ -662,10 +665,8 @@ do_pathconv (char *filename)
exit (1); exit (1);
} }
} }
else if (unix_flag)
len = cygwin_win32_to_posix_path_list_buf_size (filename);
else else
len = cygwin_posix_to_win32_path_list_buf_size (filename); len = cygwin_conv_path_list (conv_func, filename, NULL, 0);
buf = (char *) malloc (len); buf = (char *) malloc (len);
if (buf == NULL) if (buf == NULL)
@ -676,11 +677,9 @@ do_pathconv (char *filename)
if (path_flag) if (path_flag)
{ {
if (unix_flag) err = cygwin_conv_path_list (conv_func, filename, buf, len);
err = cygwin_win32_to_posix_path_list (filename, buf); if (!unix_flag)
else
{ {
err = cygwin_posix_to_win32_path_list (filename, buf);
if (err) if (err)
/* oops */; /* oops */;
buf = get_device_paths (buf); buf = get_device_paths (buf);
@ -700,13 +699,7 @@ do_pathconv (char *filename)
} }
else else
{ {
if (unix_flag) err = cygwin_conv_path (conv_func, filename, buf, len);
conv_func = (absolute_flag ? cygwin_conv_to_full_posix_path :
cygwin_conv_to_posix_path);
else
conv_func = (absolute_flag ? cygwin_conv_to_full_win32_path :
cygwin_conv_to_win32_path);
err = conv_func (filename, buf);
if (err) if (err)
{ {
fprintf (stderr, "%s: error converting \"%s\" - %s\n", fprintf (stderr, "%s: error converting \"%s\" - %s\n",

View File

@ -888,7 +888,6 @@ main (int argc, char **argv)
int opt; int opt;
const char *p = ""; const char *p = "";
DWORD pid; DWORD pid;
char win32_name [MAX_PATH];
while ((opt = getopt_long (argc, argv, "dqhv", longopts, NULL) ) != EOF) while ((opt = getopt_long (argc, argv, "dqhv", longopts, NULL) ) != EOF)
switch (opt) switch (opt)
@ -911,8 +910,11 @@ main (int argc, char **argv)
if (argv && *(argv + optind) && *(argv + optind +1)) if (argv && *(argv + optind) && *(argv + optind +1))
{ {
*win32_name = '\0'; ssize_t len = cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
cygwin_conv_to_win32_path (*(argv + optind), win32_name); *(argv + optind), NULL, 0);
char *win32_name = (char *) alloca (len);
cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE, *(argv + optind),
win32_name, len);
if ((p = strrchr (win32_name, '\\'))) if ((p = strrchr (win32_name, '\\')))
p++; p++;
else else

View File

@ -197,7 +197,8 @@ current_user (int print_sids, int print_cygpath,
strlcat (homedir_w32, "\\", sizeof (homedir_w32)); strlcat (homedir_w32, "\\", sizeof (homedir_w32));
strlcat (homedir_w32, envhomepath, sizeof (homedir_w32)); strlcat (homedir_w32, envhomepath, sizeof (homedir_w32));
if (print_cygpath) if (print_cygpath)
cygwin_conv_to_posix_path (homedir_w32, homedir_psx); cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, homedir_w32,
homedir_psx, MAX_PATH);
else else
psx_dir (homedir_w32, homedir_psx); psx_dir (homedir_w32, homedir_psx);
} }
@ -298,7 +299,8 @@ enum_users (LPWSTR servername, int print_sids, int print_cygpath,
if (homedir_w32[0] != '\0') if (homedir_w32[0] != '\0')
{ {
if (print_cygpath) if (print_cygpath)
cygwin_conv_to_posix_path (homedir_w32, homedir_psx); cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE,
homedir_w32, homedir_psx, MAX_PATH);
else else
psx_dir (homedir_w32, homedir_psx); psx_dir (homedir_w32, homedir_psx);
} }

View File

@ -20,6 +20,10 @@ details. */
#include <tlhelp32.h> #include <tlhelp32.h>
#include <psapi.h> #include <psapi.h>
/* Maximum possible path length under NT. There's no official define
for that value. Note that PATH_MAX is only 4K. */
#define NT_MAX_PATH 32768
static const char version[] = "$Revision$"; static const char version[] = "$Revision$";
static char *prog_name; static char *prog_name;
@ -355,7 +359,9 @@ main (int argc, char *argv[])
else if (p->process_state & PID_TTYOU) else if (p->process_state & PID_TTYOU)
status = 'O'; status = 'O';
char pname[PATH_MAX]; /* Maximum possible path length under NT. There's no official define
for that value. */
char pname[NT_MAX_PATH];
if (p->process_state & PID_EXITED || (p->exitcode & ~0xffff)) if (p->process_state & PID_EXITED || (p->exitcode & ~0xffff))
strcpy (pname, "<defunct>"); strcpy (pname, "<defunct>");
else if (p->ppid) else if (p->ppid)
@ -363,9 +369,11 @@ main (int argc, char *argv[])
char *s; char *s;
pname[0] = '\0'; pname[0] = '\0';
if (p->version >= EXTERNAL_PINFO_VERSION_32_LP) if (p->version >= EXTERNAL_PINFO_VERSION_32_LP)
cygwin_conv_to_posix_path (p->progname_long, pname); cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE,
p->progname_long, pname, NT_MAX_PATH);
else else
cygwin_conv_to_posix_path (p->progname, pname); cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE,
p->progname, pname, NT_MAX_PATH);
s = strchr (pname, '\0') - 4; s = strchr (pname, '\0') - 4;
if (s > pname && strcasecmp (s, ".exe") == 0) if (s > pname && strcasecmp (s, ".exe") == 0)
*s = '\0'; *s = '\0';

View File

@ -414,8 +414,11 @@ find_key (int howmanyparts, REGSAM access, int option = 0)
} }
else if (argv[1]) else if (argv[1])
{ {
char win32_path[MAX_PATH]; ssize_t len = cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
cygwin_conv_to_win32_path (argv[1], win32_path); argv[1], NULL, 0);
char win32_path[len];
cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE, argv[1],
win32_path, len);
rv = RegLoadKey (base, n, win32_path); rv = RegLoadKey (base, n, win32_path);
if (rv != ERROR_SUCCESS) if (rv != ERROR_SUCCESS)
Fail (rv); Fail (rv);
@ -849,8 +852,11 @@ cmd_save ()
set_privilege (SE_BACKUP_NAME); set_privilege (SE_BACKUP_NAME);
/* REG_OPTION_BACKUP_RESTORE is necessary to save /HKLM/SECURITY */ /* REG_OPTION_BACKUP_RESTORE is necessary to save /HKLM/SECURITY */
find_key (1, KEY_QUERY_VALUE, REG_OPTION_BACKUP_RESTORE); find_key (1, KEY_QUERY_VALUE, REG_OPTION_BACKUP_RESTORE);
char win32_path[MAX_PATH]; ssize_t len = cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE,
cygwin_conv_to_win32_path (argv[1], win32_path); argv[1], NULL, 0);
char win32_path[len];
cygwin_conv_path (CCP_POSIX_TO_WIN_A | CCP_RELATIVE, argv[1],
win32_path, len);
DWORD rv = RegSaveKey (key, win32_path, NULL); DWORD rv = RegSaveKey (key, win32_path, NULL);
if (rv != ERROR_SUCCESS) if (rv != ERROR_SUCCESS)
Fail (rv); Fail (rv);