diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-11-02 11:42:04 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-11-02 11:42:04 +0000 |
commit | a657970571be50681055aa60289e35f312dea761 (patch) | |
tree | 0a419098d960bb4a80124595a990028e4c544f25 /winsup/cygwin/path.cc | |
parent | 9725900d860b5d86a316faf66d357a3c9a5d7f83 (diff) | |
download | cygnal-a657970571be50681055aa60289e35f312dea761.tar.gz cygnal-a657970571be50681055aa60289e35f312dea761.tar.bz2 cygnal-a657970571be50681055aa60289e35f312dea761.zip |
* miscfuncs.h (transform_chars): Declare. Define inline variation here.
* mount.cc (mount_info::from_fstab): Remove extern declaration of
transform_chars.
* path.cc (tfx_chars): Move to strfuncs.cc.
(transform_chars): Ditto.
* strfunc.cc (tfx_chars): Moved here from path.cc.
(transform_chars): Ditto.
(sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip
save for all characters.
(sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences
representing U+f0XX UNICODE chars. Fix typo in comment.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index fdc42d372..1f95073b9 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -395,63 +395,6 @@ path_conv::set_normalized_path (const char *path_copy) } } -/* Transform characters invalid for Windows filenames to the Unicode private - use area in the U+f0XX range. The affected characters are all control - chars 1 <= c <= 31, as well as the characters " * : < > ? |. The backslash - is affected as well, but we can't transform it as long as we accept Win32 - paths as input. - The reverse functionality is in strfuncs.cc, function sys_cp_wcstombs. */ -static const WCHAR tfx_chars[] = { - 0, 0xf000 | 1, 0xf000 | 2, 0xf000 | 3, - 0xf000 | 4, 0xf000 | 5, 0xf000 | 6, 0xf000 | 7, - 0xf000 | 8, 0xf000 | 9, 0xf000 | 10, 0xf000 | 11, - 0xf000 | 12, 0xf000 | 13, 0xf000 | 14, 0xf000 | 15, - 0xf000 | 16, 0xf000 | 17, 0xf000 | 18, 0xf000 | 19, - 0xf000 | 20, 0xf000 | 21, 0xf000 | 22, 0xf000 | 23, - 0xf000 | 24, 0xf000 | 25, 0xf000 | 26, 0xf000 | 27, - 0xf000 | 28, 0xf000 | 29, 0xf000 | 30, 0xf000 | 31, - ' ', '!', 0xf000 | '"', '#', - '$', '%', '&', 39, - '(', ')', 0xf000 | '*', '+', - ',', '-', '.', '\\', - '0', '1', '2', '3', - '4', '5', '6', '7', - '8', '9', 0xf000 | ':', ';', - 0xf000 | '<', '=', 0xf000 | '>', 0xf000 | '?', - '@', 'A', 'B', 'C', - 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', - 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', - 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', - '\\', ']', '^', '_', - '`', 'a', 'b', 'c', - 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', - 'l', 'm', 'n', 'o', - 'p', 'q', 'r', 's', - 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', - 0xf000 | '|', '}', '~', 127 -}; - -void -transform_chars (PWCHAR path, PWCHAR path_end) -{ - for (; path <= path_end; ++path) - if (*path < 128) - *path = tfx_chars[*path]; -} - -static inline -void -transform_chars (PUNICODE_STRING upath, USHORT start_idx) -{ - transform_chars (upath->Buffer + start_idx, - upath->Buffer + upath->Length / sizeof (WCHAR) - 1); -} - static inline void str2uni_cat (UNICODE_STRING &tgt, const char *srcstr) { |