Added all of the MH sources, including RCS files, in
[mmh] / docs / historical / mh-6.8.5 / sbr / RCS / m_maildir.c,v
1 head    1.6;
2 access;
3 symbols;
4 locks; strict;
5 comment @ * @;
6
7
8 1.6
9 date    92.12.15.00.20.22;      author jromine; state Exp;
10 branches;
11 next    1.5;
12
13 1.5
14 date    92.01.31.21.54.56;      author jromine; state Exp;
15 branches;
16 next    1.4;
17
18 1.4
19 date    90.04.05.15.31.56;      author sources; state Exp;
20 branches;
21 next    1.3;
22
23 1.3
24 date    90.04.05.14.49.12;      author sources; state Exp;
25 branches;
26 next    1.2;
27
28 1.2
29 date    90.02.06.13.08.59;      author sources; state Exp;
30 branches;
31 next    1.1;
32
33 1.1
34 date    90.02.06.13.05.59;      author sources; state Exp;
35 branches;
36 next    ;
37
38
39 desc
40 @@
41
42
43 1.6
44 log
45 @endif sugar
46 @
47 text
48 @/* m_maildir.c - get the path for the mail directory */
49 #ifndef lint
50 static char ident[] = "@@(#)$Id: m_maildir.c,v 1.5 1992/01/31 21:54:56 jromine Exp jromine $";
51 #endif  /* lint */
52
53 #include "../h/mh.h"
54 #include <stdio.h>
55
56 #define CWD     "./"
57 #define NCWD    (sizeof CWD - 1)
58 #define DOT     "."
59 #define DOTDOT  ".."
60 #define PWD     "../"
61 #define NPWD    (sizeof PWD - 1)
62
63
64 static char mailfold[BUFSIZ];
65
66 static char   *exmaildir ();
67
68
69 char   *m_maildir (folder)
70 register char   *folder;
71 {
72     register char  *cp,
73                    *ep;
74
75     if ((cp = exmaildir (folder))
76             && (ep = cp + strlen (cp) - 1) > cp
77             && *ep == '/')
78         *ep = 0;
79
80     return cp;
81 }
82
83 /* \f */
84
85 char   *m_mailpath (folder)
86 register char   *folder;
87 {
88     register char  *cp;
89     char    maildir[BUFSIZ];
90
91     if (*folder == '/'
92             || strncmp (folder, CWD, NCWD) == 0
93             || strcmp (folder, DOT) == 0
94             || strcmp (folder, DOTDOT) == 0
95             || strncmp (folder, PWD, NPWD) == 0)
96         cp = path (folder, TFOLDER);
97     else {
98         (void) strcpy (maildir, mailfold);/* preserve... */
99         cp = getcpy (m_maildir (folder));
100         (void) strcpy (mailfold, maildir);
101     }
102
103     return cp;
104 }
105
106 /* \f */
107
108 static char *exmaildir (folder)
109 register char   *folder;
110 {
111     register char  *cp,
112                    *pp;
113
114     if (folder == NULL)
115         folder = m_getfolder ();
116     if (*folder == '/'
117             || strncmp (folder, CWD, NCWD) == 0
118             || strcmp (folder, DOT) == 0
119             || strcmp (folder, DOTDOT) == 0
120             || strncmp (folder, PWD, NPWD) == 0) {
121         (void) strcpy (mailfold, folder);
122         return mailfold;
123     }
124
125     cp = mailfold;
126     if ((pp = m_find ("path")) != NULL && *pp) {
127         if (*pp != '/') {
128             (void) sprintf (cp, "%s/", mypath);
129             cp += strlen (cp);
130         }
131         cp = copy (pp, cp);
132     }
133     else
134         cp = copy (path ("./", TFOLDER), cp);
135     if (cp[-1] != '/')
136         *cp++ = '/';
137     (void) strcpy (cp, folder);
138
139     return mailfold;
140 }
141 @
142
143
144 1.5
145 log
146 @kerberos
147 @
148 text
149 @d3 2
150 a4 2
151 static char ident[] = "@@(#)$Id: m_maildir.c,v 1.4 1990/04/05 15:31:56 sources Exp jromine $";
152 #endif  lint
153 @
154
155
156 1.4
157 log
158 @add ID
159 @
160 text
161 @d3 1
162 a3 1
163 static char ident[] = "@@(#)$Id:$";
164 d31 1
165 a31 1
166         *ep = NULL;
167 @
168
169
170 1.3
171 log
172 @add ID
173 @
174 text
175 @d3 1
176 a3 1
177 static char ident[] = "$Id:";
178 @
179
180
181 1.2
182 log
183 @ANSI Compilance
184 @
185 text
186 @d2 3
187 @
188
189
190 1.1
191 log
192 @Initial revision
193 @
194 text
195 @d16 1
196 a16 1
197 char   *exmaildir ();
198 @