]> diplodocus.org Git - nmh/blob - docs/historical/mh-6.8.5/sbr/RCS/m_maildir.c,v
sbr/mts.c: Delete mmdlm2; use same-valued mmdlm1 instead.
[nmh] / 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 @