Mercurial > hg > xemacs-beta
comparison lib-src/gnuclient.c @ 318:afd57c14dfc8 r21-0b57
Import from CVS: tag r21-0b57
| author | cvs |
|---|---|
| date | Mon, 13 Aug 2007 10:45:36 +0200 |
| parents | 4b85ae5eabfb |
| children | 19dcec799385 |
comparison
equal
deleted
inserted
replaced
| 317:a2fc9afbef65 | 318:afd57c14dfc8 |
|---|---|
| 177 { | 177 { |
| 178 int len; | 178 int len; |
| 179 | 179 |
| 180 fullpath[0] = '\0'; | 180 fullpath[0] = '\0'; |
| 181 | 181 |
| 182 if (filename[0] && filename[0] != '/') | 182 if (filename[0] && filename[0] == '/') |
| 183 { /* relative filename */ | 183 { |
| 184 /* Absolute (unix-style) pathname. Do nothing */ | |
| 185 strcat (fullpath, filename); | |
| 186 } | |
| 187 #ifdef __CYGWIN32__ | |
| 188 else if (filename[0] && filename[0] == '\\' && | |
| 189 filename[1] && filename[1] == '\\') | |
| 190 { | |
| 191 /* This path includes the server name (something like | |
| 192 "\\server\path"), so we assume it's absolute. Do nothing to | |
| 193 it. */ | |
| 194 strcat (fullpath, filename); | |
| 195 } | |
| 196 else if (filename[0] && | |
| 197 filename[1] && filename[1] == ':' && | |
| 198 filename[2] && filename[2] == '\\') | |
| 199 { | |
| 200 /* Absolute pathname with drive letter. Convert "<drive>:" | |
| 201 to "//<drive>/". */ | |
| 202 strcat (fullpath, "//"); | |
| 203 strncat (fullpath, filename, 1); | |
| 204 strcat (fullpath, &filename[2]); | |
| 205 } | |
| 206 #endif | |
| 207 else | |
| 208 { | |
| 209 /* Assume relative Unix style path. Get the current directory | |
| 210 and prepend it. FIXME: need to fix the case of DOS paths like | |
| 211 "\foo", where we need to get the current drive. */ | |
| 212 | |
| 184 strcat (fullpath, get_current_working_directory ()); | 213 strcat (fullpath, get_current_working_directory ()); |
| 185 len = strlen (fullpath); | 214 len = strlen (fullpath); |
| 186 | 215 |
| 187 if (len > 0 && fullpath[len-1] == '/') /* trailing slash already? */ | 216 if (len > 0 && fullpath[len-1] == '/') /* trailing slash already? */ |
| 188 ; /* yep */ | 217 ; /* yep */ |
| 189 else | 218 else |
| 190 strcat (fullpath, "/"); /* nope, append trailing slash */ | 219 strcat (fullpath, "/"); /* nope, append trailing slash */ |
| 191 } /* if */ | 220 } |
| 192 | |
| 193 strcat (fullpath,filename); | |
| 194 | |
| 195 } /* filename_expand */ | 221 } /* filename_expand */ |
| 196 | 222 |
| 197 /* Encase the string in quotes, escape all the backslashes and quotes | 223 /* Encase the string in quotes, escape all the backslashes and quotes |
| 198 in string. */ | 224 in string. */ |
| 199 static char * | 225 static char * |
