|
|
1.1 root 1: /* cwd.c
2: Routines dealing with the current working directory. */
3:
4: #include "uucp.h"
5:
6: #include "uudefs.h"
7: #include "sysdep.h"
8: #include "system.h"
9:
10: /* See whether running this file through zsysdep_add_cwd would require
11: knowing the current working directory. This is used to avoid
12: determining the cwd if it will not be needed. */
13:
14: boolean
15: fsysdep_needs_cwd (zfile)
16: const char *zfile;
17: {
18: return *zfile != '/' && *zfile != '~';
19: }
20:
21: /* Expand a local file, putting relative pathnames in the current
22: working directory. Note that ~/file is placed in the public
23: directory, rather than in the user's home directory. This is
24: consistent with other UUCP packages. */
25:
26: char *
27: zsysdep_local_file_cwd (zfile, zpubdir)
28: const char *zfile;
29: const char *zpubdir;
30: {
31: if (*zfile == '/')
32: return zbufcpy (zfile);
33: else if (*zfile == '~')
34: return zsysdep_local_file (zfile, zpubdir);
35: else
36: return zsysdep_add_cwd (zfile);
37: }
38:
39: /* Add the current working directory to a remote file name. */
40:
41: char *
42: zsysdep_add_cwd (zfile)
43: const char *zfile;
44: {
45: if (*zfile == '/' || *zfile == '~')
46: return zbufcpy (zfile);
47:
48: if (zScwd == NULL)
49: {
50: ulog (LOG_ERROR, "Can't determine current directory");
51: return NULL;
52: }
53:
54: return zsysdep_in_dir (zScwd, zfile);
55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.