Summary: | Add unicode/utf8 copy/paste menu options to gswin32.exe | ||
---|---|---|---|
Product: | Ghostscript | Reporter: | Robin Watts <robin.watts> |
Component: | General | Assignee: | Default assignee <ghostpdl-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | enhancement | CC: | gsview, martin.osieka |
Priority: | P4 | ||
Version: | master | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Customer: | Word Size: | --- |
Description
Robin Watts
2011-06-07 12:16:10 UTC
(In reply to comment #0) > In Bug 691222 Martin Osieka suggests adding new menu options to the system menu > extension on gswin32.exe to allow us to easily copy/paste unicode strings from > other windows apps into gs. Spinning that out into a separate enhancement bug > here to allow comments/discussion. > > Since Bug 691222 has been fixed, gs is now in the position to process files > with unicode characters in the filenames. This means it might be desirable to > (for instance) copy a unicode filename from an explorer window and paste it > into gswin32.exe's console window. > > Unfortunately, this will currently fail, as gs expects all filenames internally > to be utf-8 encoded. > > The suggestion (as I understand it) is that we should add 2 new options on the > system menu: 'Copy utf-8 as unicode' and 'Paste unicode as utf-8', that would > convert the selection/clipboard contents before doing the copy/paste. There is no need to add two new items. Just replace in the current implementation CF_TEXT with CF_UNICODETEXT, get/put wchar_t text, and convert it from/to utf8. This works fine because there is some magic in Windows which does char/wchar_t conversion on the clipboard. So if someone puts an ASCII text with CF_TEXT on the clipboard you will always be able to get the text with CF_UNICODETEXT. A unicode aware application will not use CF_TEXT any longer. I agree with Martin. This also requires changing the text window (dwtext.c in gswin32.exe) to be a Unicode window, store the text buffer as Unicode, and convert it to and from UTF8 when used from dwmain.c. I am part way through doing this conversion. |