diff --git a/doc/ethereal.pod.template b/doc/ethereal.pod.template index e03f85b15a..628883fe1a 100644 --- a/doc/ethereal.pod.template +++ b/doc/ethereal.pod.template @@ -692,10 +692,12 @@ filter, and applies it to the current capture. =item Save -Saves the current filter list in F<$HOME/.ethereal/cfilters> if the list -of filters being edited is the list of capture filters or in -F<$HOME/.ethereal/dfilters> if the list of filters being edited is the -list of display filters. +Saves the current filter list in F<$HOME/.ethereal/cfilters> on +UNIX-compatible systems, and F<%USERPROFILE%\.ethereal\cfilters> on +Windows systems, if the list of filters being edited is the list of +capture filters, or in F<$HOME/.ethereal/dfilters> on UNIX-compatible +systems, and F<%USERPROFILE%\.ethereal\dfilters> on Windows systems, if +the list of filters being edited is the list of display filters. =item Close @@ -748,12 +750,21 @@ available on your system. The I shows the name and version of each dissector plugin module found on your system. The plugins are searched in the following -directories: F, -F and F<~/.ethereal/plugins>. Note -that a dissector plugin module may support more than one protocol; there -is not necessarily a one-to-one correspondence between dissector plugin -modules and protocols. Protocols supported by a dissector plugin module -are enabled and disabled using the I dialog box, just as +directories: the F directory under the +main installation directory (for example, +F), +F, +F, and +F<$HOME/.ethereal/plugins> on UNIX-compatible systems, and in the +F directory under the main installation directory (for +example, F) and +F<%USERPROFILE%\.ethereal\plugins\$VERSION> on Windows +systems; $VERSION is the version number of the plugin interface, which +is typically the version number of Ethereal. Note that a dissector +plugin module may support more than one protocol; there is not +necessarily a one-to-one correspondence between dissector plugin modules +and protocols. Protocols supported by a dissector plugin module are +enabled and disabled using the I dialog box, just as protocols built into Ethereal are. =head1 CAPTURE FILTER SYNTAX @@ -956,16 +967,18 @@ type of the field is also given. The F file, which is installed in the F directory under the main installation directory (for example, F) on UNIX-compatible systems, and in the main installation directory (for -example, F) on Windows systems, and -F<$HOME/.ethereal/preferences>, contain system-wide and personal -preference settings, respectively. The file contains preference -settings of the form IB<:>I, one per line, where -I is the name of the preference (which is the same name that -would appear in the preference file), and I is the value to which -it should be set; white space is allowed between B<:> and I. A -preference setting can be continued on subsequent lines by indenting the -continuation lines with white space. A B<#> character starts a comment -that runs to the end of the line. +example, F) on Windows systems, and the +personal preferences file, which is F<$HOME/.ethereal/preferences> on +UNIX-compatible systems and F<%USERPROFILE%\.ethereal\preferences> on +Windows systems, contain system-wide and personal preference settings, +respectively. The file contains preference settings of the form +IB<:>I, one per line, where I is the name of +the preference (which is the same name that would appear in the +preference file), and I is the value to which it should be set; +white space is allowed between B<:> and I. A preference setting +can be continued on subsequent lines by indenting the continuation lines +with white space. A B<#> character starts a comment that runs to the +end of the line. The system-wide preference file is read first, if it exists, overriding B's default values; the personal preferences file is then @@ -973,7 +986,7 @@ read, if it exists, overriding default values and values read from the system-wide preference file. Note that whenever the preferences are saved by using the I button -in the I dialog box, F<$HOME/.ethereal/preferences> +in the I dialog box, your personal preferences file will be overwritten with the new settings, destroying any comments that were in the file. @@ -981,11 +994,12 @@ The F file, which is found in the F directory on UNIX-compatible systems, and in the main installation directory (for example, F) on Windows systems, is consulted to correlate 6-byte hardware addresses to names. If an address is not -found in the F file, the F<$HOME/.ethereal/ethers> file is -consulted next. Each line contains one hardware address and name, -separated by whitespace. The digits of the hardware address are -separated by either a colon (:), a dash (-), or a period (.). The -following three lines are valid lines of an ethers file: +found in the F file, the F<$HOME/.ethereal/ethers> file on +UNIX-compatible systems, and the F<%USERPROFILE%\.ethereal\ethers> file +on Windows systems is consulted next. Each line contains one hardware +address and name, separated by whitespace. The digits of the hardware +address are separated by either a colon (:), a dash (-), or a period +(.). The following three lines are valid lines of an ethers file: ff:ff:ff:ff:ff:ff Broadcast c0-00-ff-ff-ff-ff TR_broadcast @@ -1003,12 +1017,13 @@ The F file, which is found in the F directory on UNIX-compatible systems, and in the main installation directory (for example, F) on Windows systems, correlates 4-byte IPX network numbers to names. If a network number is not found -in the F file, the F<$HOME/.ethereal/ipxnets> file is consulted -next. The format is the same as the F file, except that each -address if four bytes instead of six. Additionally, the address can be -represented a single hexadecimal number, as is more common in the IPX -world, rather than four hex octets. For example, these four lines are -valid lines of an ipxnets file. +in the F file, the F<$HOME/.ethereal/ipxnets> file on +UNIX-compatible systems, and the F<%USERPROFILE%\.ethereal\ipxnets> file +on Windows systems, is consulted next. The format is the same as the +F file, except that each address if four bytes instead of six. +Additionally, the address can be represented a single hexadecimal +number, as is more common in the IPX world, rather than four hex octets. +For example, these four lines are valid lines of an ipxnets file. C0.A8.2C.00 HR c0-a8-1c-00 CEO diff --git a/doc/tethereal.pod.template b/doc/tethereal.pod.template index d1cb33a1f1..4715aecc54 100644 --- a/doc/tethereal.pod.template +++ b/doc/tethereal.pod.template @@ -84,7 +84,7 @@ Packet capturing is performed with the pcap library. The capture filter syntax follows the rules of the pcap library. This syntax is different from the read filter syntax. A read filter can also be specified when capturing, and only packets that pass the read filter will be displayed -or saved to the output file; note, however, that capture filers are much +or saved to the output file; note, however, that capture filters are much more efficient than read filters, and it may be more difficult for B to keep up with a busy network if a read filter is specified for a live capture. @@ -440,16 +440,18 @@ type of the field is also given. The F file, which is installed in the F directory under the main installation directory (for example, F) on UNIX-compatible systems, and in the main installation directory (for -example, F) on Windows systems, and -F<$HOME/.ethereal/preferences>, contain system-wide and personal -preference settings, respectively. The file contains preference -settings of the form IB<:>I, one per line, where -I is the name of the preference (which is the same name that -would appear in the preference file), and I is the value to which -it should be set; white space is allowed between B<:> and I. A -preference setting can be continued on subsequent lines by indenting the -continuation lines with white space. A B<#> character starts a comment -that runs to the end of the line. +example, F) on Windows systems, and the +personal preferences file, which is F<$HOME/.ethereal/preferences> on +UNIX-compatible systems and F<%USERPROFILE%\.ethereal\preferences> on +Windows systems, contain system-wide and personal preference settings, +respectively. The file contains preference settings of the form +IB<:>I, one per line, where I is the name of +the preference (which is the same name that would appear in the +preference file), and I is the value to which it should be set; +white space is allowed between B<:> and I. A preference setting +can be continued on subsequent lines by indenting the continuation lines +with white space. A B<#> character starts a comment that runs to the +end of the line. The system-wide preference file is read first, if it exists, overriding B's default values; the personal preferences file is then @@ -460,11 +462,12 @@ The F file, which is found in the F directory on UNIX-compatible systems, and in the main installation directory (for example, F) on Windows systems, is consulted to correlate 6-byte hardware addresses to names. If an address is not -found in the F file, the F<$HOME/.ethereal/ethers> file is -consulted next. Each line contains one hardware address and name, -separated by whitespace. The digits of the hardware address are -separated by either a colon (:), a dash (-), or a period (.). The -following three lines are valid lines of an ethers file: +found in the F file, the F<$HOME/.ethereal/ethers> file on +UNIX-compatible systems, and the F<%USERPROFILE%\.ethereal\ethers> file +on Windows systems is consulted next. Each line contains one hardware +address and name, separated by whitespace. The digits of the hardware +address are separated by either a colon (:), a dash (-), or a period +(.). The following three lines are valid lines of an ethers file: ff:ff:ff:ff:ff:ff Broadcast c0-00-ff-ff-ff-ff TR_broadcast @@ -482,12 +485,13 @@ The F file, which is found in the F directory on UNIX-compatible systems, and in the main installation directory (for example, F) on Windows systems, correlates 4-byte IPX network numbers to names. If a network number is not found -in the F file, the F<$HOME/.ethereal/ipxnets> file is consulted -next. The format is the same as the F file, except that each -address if four bytes instead of six. Additionally, the address can be -represented a single hexadecimal number, as is more common in the IPX -world, rather than four hex octets. For example, these four lines are -valid lines of an ipxnets file. +in the F file, the F<$HOME/.ethereal/ipxnets> file on +UNIX-compatible systems, and the F<%USERPROFILE%\.ethereal\ipxnets> file +on Windows systems, is consulted next. The format is the same as the +F file, except that each address if four bytes instead of six. +Additionally, the address can be represented a single hexadecimal +number, as is more common in the IPX world, rather than four hex octets. +For example, these four lines are valid lines of an ipxnets file. C0.A8.2C.00 HR c0-a8-1c-00 CEO diff --git a/epan/filesystem.c b/epan/filesystem.c index 60331ae077..a27016e0bf 100644 --- a/epan/filesystem.c +++ b/epan/filesystem.c @@ -1,7 +1,7 @@ /* filesystem.c * Filesystem utility routines * - * $Id: filesystem.c,v 1.11 2001/10/23 05:00:59 guy Exp $ + * $Id: filesystem.c,v 1.12 2001/10/23 08:15:11 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs @@ -49,6 +49,10 @@ #include #endif +#ifdef HAVE_DIRECT_H +#include /* to declare "mkdir()" on Windows */ +#endif + #ifndef WIN32 #include #endif @@ -302,11 +306,7 @@ get_systemfile_dir(void) const char * get_persconffile_dir(void) { -#ifdef WIN32 - char *homedrive, *homepath; - char *homestring = NULL; - char *lastsep; -#else +#ifndef WIN32 struct passwd *pwd; #endif char *homedir; @@ -318,40 +318,17 @@ get_persconffile_dir(void) #ifdef WIN32 /* - * XXX - should we use USERPROFILE anywhere in this process? - * Is there a chance that it might be set but one or more of - * HOMEDRIVE or HOMEPATH isn't set? + * Use %USERPROFILE%, so that configuration files are stored + * in the user profile, rather than in the home directory. + * The Windows convention is to store configuration information + * in the user profile, and doing so means you can use + * Ethereal even if the home directory is an inaccessible + * network drive. */ - homedrive = getenv("HOMEDRIVE"); - if (homedrive != NULL) { - homepath = getenv("HOMEPATH"); - if (homepath != NULL) { - /* - * This is cached, so we don't need to worry about - * allocating multiple ones of them. - */ - homestring = - g_malloc(strlen(homedrive) + strlen(homepath) + 1); - strcpy(homestring, homedrive); - strcat(homestring, homepath); - - /* - * Trim off any trailing slash or backslash. - */ - lastsep = find_last_pathname_separator(homestring); - if (lastsep != NULL && *(lastsep + 1) == '\0') { - /* - * Last separator is the last character - * in the string. Nuke it. - */ - *lastsep = '\0'; - } - homedir = homestring; - } else - homedir = homedrive; - } else { + homedir = getenv("USERPROFILE"); + if (homedir == NULL) { /* - * Try using "windir? + * Give up and use "C:". */ homedir = "C:"; } @@ -380,10 +357,6 @@ get_persconffile_dir(void) pf_dir = g_malloc(strlen(homedir) + strlen(PF_DIR) + 2); sprintf(pf_dir, "%s" G_DIR_SEPARATOR_S "%s", homedir, PF_DIR); -#ifdef WIN32 - if (homestring != NULL) - g_free(homestring); -#endif return pf_dir; }