Mercurial > hg > xemacs-beta
comparison src/realpath.c @ 867:804517e16990
[xemacs-hg @ 2002-06-05 09:54:39 by ben]
Textual renaming: text/char names
abbrev.c, alloc.c, buffer.c, buffer.h, bytecode.c, callint.c, casefiddle.c, casetab.c, charset.h, chartab.c, chartab.h, cmds.c, console-gtk.h, console-msw.c, console-msw.h, console-stream.c, console-tty.c, console-x.c, console-x.h, console.h, data.c, device-msw.c, device-x.c, dialog-msw.c, dired-msw.c, dired.c, doc.c, doprnt.c, editfns.c, eldap.c, emodules.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, event-unixoid.c, events.c, events.h, file-coding.c, file-coding.h, fileio.c, filelock.c, fns.c, font-lock.c, frame-gtk.c, frame-msw.c, frame-x.c, frame.c, glyphs-eimage.c, glyphs-msw.c, glyphs-x.c, glyphs.c, glyphs.h, gpmevent.c, gui-x.c, gui-x.h, gui.c, gui.h, hpplay.c, indent.c, insdel.c, insdel.h, intl-win32.c, keymap.c, line-number.c, line-number.h, lisp-disunion.h, lisp-union.h, lisp.h, lread.c, lrecord.h, lstream.c, lstream.h, md5.c, menubar-msw.c, menubar-x.c, menubar.c, minibuf.c, mule-ccl.c, mule-charset.c, mule-coding.c, mule-wnnfns.c, ndir.h, nt.c, objects-gtk.c, objects-gtk.h, objects-msw.c, objects-tty.c, objects-x.c, objects.c, objects.h, postgresql.c, print.c, process-nt.c, process-unix.c, process.c, procimpl.h, realpath.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, redisplay.h, regex.c, search.c, select-common.h, select-gtk.c, select-x.c, sound.h, symbols.c, syntax.c, syntax.h, sysdep.c, sysdep.h, sysdir.h, sysfile.h, sysproc.h, syspwd.h, systime.h, syswindows.h, termcap.c, tests.c, text.c, text.h, toolbar-common.c, tooltalk.c, ui-gtk.c, unexnt.c, unicode.c, win32.c: Text/char naming rationalization.
[a] distinguish between "charptr" when it refers to operations on
the pointer itself and when it refers to operations on text; and
[b] use consistent naming for everything referring to internal
format, i.e.
Itext == text in internal format
Ibyte == a byte in such text
Ichar == a char as represented in internal character format
thus e.g.
set_charptr_emchar -> set_itext_ichar
The pre and post tags on either side of this change are:
pre-internal-format-textual-renaming
post-internal-format-textual-renaming
See the Internals Manual for details of exactly how this was done,
how to handle the change in your workspace, etc.
author | ben |
---|---|
date | Wed, 05 Jun 2002 09:58:45 +0000 |
parents | e7ee5f8bde58 |
children | 5df795348f45 |
comparison
equal
deleted
inserted
replaced
866:613552a02607 | 867:804517e16990 |
---|---|
53 #define ABS_START(name) (name + ABS_LENGTH (name)) | 53 #define ABS_START(name) (name + ABS_LENGTH (name)) |
54 | 54 |
55 #if defined (WIN32_NATIVE) | 55 #if defined (WIN32_NATIVE) |
56 /* Length of start of absolute filename. */ | 56 /* Length of start of absolute filename. */ |
57 # define ABS_LENGTH(name) (mswindows_abs_start (name)) | 57 # define ABS_LENGTH(name) (mswindows_abs_start (name)) |
58 static int mswindows_abs_start (const Intbyte *name); | 58 static int mswindows_abs_start (const Ibyte *name); |
59 # define readlink_and_correct_case mswindows_readlink_and_correct_case | 59 # define readlink_and_correct_case mswindows_readlink_and_correct_case |
60 #else | 60 #else |
61 # ifdef CYGWIN | 61 # ifdef CYGWIN |
62 # ifdef WIN32_FILENAMES | 62 # ifdef WIN32_FILENAMES |
63 # define ABS_LENGTH(name) (mswindows_abs_start (name)) | 63 # define ABS_LENGTH(name) (mswindows_abs_start (name)) |
64 static int mswindows_abs_start (const Intbyte * name); | 64 static int mswindows_abs_start (const Ibyte * name); |
65 # else | 65 # else |
66 # define ABS_LENGTH(name) (IS_DIRECTORY_SEP (*name) ? \ | 66 # define ABS_LENGTH(name) (IS_DIRECTORY_SEP (*name) ? \ |
67 (IS_DIRECTORY_SEP (name[1]) ? 2 : 1) : 0) | 67 (IS_DIRECTORY_SEP (name[1]) ? 2 : 1) : 0) |
68 # endif | 68 # endif |
69 # define readlink_and_correct_case cygwin_readlink_and_correct_case | 69 # define readlink_and_correct_case cygwin_readlink_and_correct_case |
79 case) of a file. (#### "readlink" is used extremely misleadingly | 79 case) of a file. (#### "readlink" is used extremely misleadingly |
80 here. This is much more like "truename"!) UNC servers and shares | 80 here. This is much more like "truename"!) UNC servers and shares |
81 are lower-cased. Directories must be given without trailing | 81 are lower-cased. Directories must be given without trailing |
82 '/'. One day, this could read Win2K's reparse points. */ | 82 '/'. One day, this could read Win2K's reparse points. */ |
83 static int | 83 static int |
84 mswindows_readlink_and_correct_case (const Intbyte *name, Intbyte *buf, | 84 mswindows_readlink_and_correct_case (const Ibyte *name, Ibyte *buf, |
85 int size) | 85 int size) |
86 { | 86 { |
87 int len = 0; | 87 int len = 0; |
88 int err = 0; | 88 int err = 0; |
89 const Intbyte *lastname; | 89 const Ibyte *lastname; |
90 int count = 0; | 90 int count = 0; |
91 const Intbyte *tmp; | 91 const Ibyte *tmp; |
92 DECLARE_EISTRING (result); | 92 DECLARE_EISTRING (result); |
93 | 93 |
94 assert (*name); | 94 assert (*name); |
95 | 95 |
96 /* Sort of check we have a valid filename. */ | 96 /* Sort of check we have a valid filename. */ |
153 #endif /* WIN32_NATIVE || CYGWIN */ | 153 #endif /* WIN32_NATIVE || CYGWIN */ |
154 | 154 |
155 #ifdef CYGWIN | 155 #ifdef CYGWIN |
156 /* Call readlink and try to find out the correct case for the file. */ | 156 /* Call readlink and try to find out the correct case for the file. */ |
157 static int | 157 static int |
158 cygwin_readlink_and_correct_case (const Intbyte *name, Intbyte *buf, | 158 cygwin_readlink_and_correct_case (const Ibyte *name, Ibyte *buf, |
159 int size) | 159 int size) |
160 { | 160 { |
161 int n = qxe_readlink (name, buf, size); | 161 int n = qxe_readlink (name, buf, size); |
162 if (n < 0 && errno == EINVAL) | 162 if (n < 0 && errno == EINVAL) |
163 { | 163 { |
164 /* The file may exist, but isn't a symlink. Try to find the | 164 /* The file may exist, but isn't a symlink. Try to find the |
165 right name. */ | 165 right name. */ |
166 Intbyte *tmp = | 166 Ibyte *tmp = |
167 (Intbyte *) ALLOCA (cygwin_posix_to_win32_path_list_buf_size | 167 (Ibyte *) ALLOCA (cygwin_posix_to_win32_path_list_buf_size |
168 ((char *) name)); | 168 ((char *) name)); |
169 cygwin_posix_to_win32_path_list ((char *) name, (char *) tmp); | 169 cygwin_posix_to_win32_path_list ((char *) name, (char *) tmp); |
170 n = mswindows_readlink_and_correct_case (tmp, buf, size); | 170 n = mswindows_readlink_and_correct_case (tmp, buf, size); |
171 } | 171 } |
172 return n; | 172 return n; |
177 #ifndef ELOOP | 177 #ifndef ELOOP |
178 #define ELOOP 10062 /* = WSAELOOP in winsock.h */ | 178 #define ELOOP 10062 /* = WSAELOOP in winsock.h */ |
179 #endif | 179 #endif |
180 /* Length of start of absolute filename. */ | 180 /* Length of start of absolute filename. */ |
181 static int | 181 static int |
182 mswindows_abs_start (const Intbyte *name) | 182 mswindows_abs_start (const Ibyte *name) |
183 { | 183 { |
184 if (isalpha (*name) && IS_DEVICE_SEP (name[1]) | 184 if (isalpha (*name) && IS_DEVICE_SEP (name[1]) |
185 && IS_DIRECTORY_SEP (name[2])) | 185 && IS_DIRECTORY_SEP (name[2])) |
186 return 3; | 186 return 3; |
187 else if (IS_DIRECTORY_SEP (*name)) | 187 else if (IS_DIRECTORY_SEP (*name)) |
192 #endif /* WIN32_NATIVE */ | 192 #endif /* WIN32_NATIVE */ |
193 | 193 |
194 /* Mule Note: This function works with and returns | 194 /* Mule Note: This function works with and returns |
195 internally-formatted strings. */ | 195 internally-formatted strings. */ |
196 | 196 |
197 Intbyte * | 197 Ibyte * |
198 qxe_realpath (const Intbyte *path, Intbyte *resolved_path) | 198 qxe_realpath (const Ibyte *path, Ibyte *resolved_path) |
199 { | 199 { |
200 Intbyte copy_path[PATH_MAX]; | 200 Ibyte copy_path[PATH_MAX]; |
201 Intbyte *new_path = resolved_path; | 201 Ibyte *new_path = resolved_path; |
202 Intbyte *max_path; | 202 Ibyte *max_path; |
203 #if defined (HAVE_READLINK) || defined (WIN32_NATIVE) | 203 #if defined (HAVE_READLINK) || defined (WIN32_NATIVE) |
204 int readlinks = 0; | 204 int readlinks = 0; |
205 Intbyte link_path[PATH_MAX]; | 205 Ibyte link_path[PATH_MAX]; |
206 int n; | 206 int n; |
207 int abslen = ABS_LENGTH (path); | 207 int abslen = ABS_LENGTH (path); |
208 #endif | 208 #endif |
209 | 209 |
210 /* Make a copy of the source path since we may need to modify it. */ | 210 /* Make a copy of the source path since we may need to modify it. */ |