Re: BeOS port news and public patch
François Revol <[email protected]> Sun, 6 Jun 2004 17:54:42 +0200
| Newsgroups | gmane.emacs.xemacs.design |
|---|---|
| Message-ID | <[email protected]> |
Hmm, forgot to CC myself again. Please reply to this post instead, as the archives both on xemacs.org and gmane.org seems definitely unreliable, and I'm still spammed enough :-( It seems after 30 minutes cvs is finally updating my tree... The joy of using dialup :^) François. Selon François Revol <[email protected]>: > > So, after digging a bit it seems to not be that hard. > the windows redisplay code just implements textual_runs with WCHARs, > so separate_textual_runs actually does the convertion while separating > the string. > I suppose I should do the same in redisplay-beos, with chars, and my > own Qbeos_unicode coding. intl-win32.c declares Qmswindows_unicode in > complex_vars_of_intl_win32: > Fmake_coding_system > (Qmswindows_unicode, Qunicode, > build_msg_string ("MS Windows Unicode"), > nconc2 (list4 (Qdocumentation, > build_msg_string ( > "Converts to the Unicode encoding for Windows API calls.\n" > "This encoding is equivalent to standard UTF16, little-endian." > ), > Qmnemonic, build_string ("MSW-U")), > list4 (Qtype, Qutf_16, > Qlittle_endian, Qt))); > > I suppose something like: > Fmake_coding_system > (Qbeos_unicode, Qunicode, > build_msg_string ("BeOS Unicode"), > nconc2 (list4 (Qdocumentation, > build_msg_string ( > "Converts to the Unicode encoding for BeOS API calls.\n" > "This encoding is equivalent to standard UTF8, little-endian." > ), > Qmnemonic, build_string ("BEOS-U")), > list4 (Qtype, Qutf_8, > Qlittle_endian, Qt))); /* there isn't really any endiannessin utf8... > is there ? */ > > in an intl-beos.c might work. I didn't read the full doc for > Fmake_coding_system yet. > Now I'm not so sure about the other stuff win32 declares, like > Qmswindows_multibyte_system_default and what they do... > > While on intl-win32, does XEmacs need the complete locale or are > the locale related functions in this file only here to find about the > system charset ? > BeOS R5 doesn't have any localization system on its own, and use the > i18n stuff for Unix apps (though it doesn't export any LC_* var). > Zeta (BeOS R6) does have a locale kit, but it's not yet bound to the > i18n stuff (so changing the language would export the correct LC_ vars). > > Also, the BeOS Terminal has a setting to use either of the > BFont available encodings ("latin-*", utf-8, mac roman), but of course > it's not reflected to the shell... So I suppose exporting > LC_ALL=something.UTF-8 will be needed to get the tty code use utf-8 > (is it able to do so yet ?) one more reason to bind the Zeta locale kit > to i18n. (actually I wanted it to be closer to i18n, but I didn't design > it :^) > > I'll also have to add input-method support. BeOS has an API for that and > already several methods for japanese and other languages, (there are quite > a lot of japanese users) but I don't know how to use that, since I don't > have much use for it (yet :). > Basically it's about using the B_INPUT_METHOD_AWARE flag for BView, and > probably adding some support code, since I don't use BTextView. > > Still, the question about filepath coding holds. > In BeOS the convention is to use UTF-8, and the desktop shows > filenames as such. However sometimes filesystems (like the FAT) > don't translate paths properly from the original codepage. In > Tracker it just shows up as squares in the names, but I noticed > XEmacs tends to crash when it finds something it's not supposed > to in encoded strings (like a byte that would be part of a multi-byte > char but isn't). > > François. > --