Index | Thread | Search

From:
Ingo Schwarze <schwarze@usta.de>
Subject:
Re: [REPOST] ksh: utf8 full width character support for emacs.c
To:
Christian Schulte <cs@schulte.it>
Cc:
tech@openbsd.org
Date:
Fri, 21 Mar 2025 11:44:20 +0100

Download raw body.

Thread
  • Ingo Schwarze:

    [REPOST] ksh: utf8 full width character support for emacs.c

  • Hi Christian,
    
    Christian Schulte wrote on Tue, Mar 18, 2025 at 06:12:00AM +0100:
    
    > Getting full unicode support would mean to replace everything 8 bit char
    > with wchar_t and use wide character string functions instead of the 8
    > bit string functions.
    
    Somewhat true, except that Unicode support tasks exist that still
    remain unsolvable even when you do that.  The possibility of complete
    locale support is a myth and not possible in any operating system.
    
    Eithe way, we absolutely do not want to go the way of globally switching
    from char to wchar_t in ksh(1), not even in the long term, the reason being
    that such a switch would massively complicates the code and locale support
    is a somewhat tengential subject when it comes to the tasks of a shell.
    Complicating the shell so much for such a relatively unimportant purpose
    would be a bad tradeoff, endangering security and maintainability.
    
    That doesn't mean UTF-8 support cannot be improved, though.
    
    > Everything else will always be a non-portable hack.
    
    Well, the scope of locale support in OpenBSD is documented in the
    locale(1) manual page.  In particular, UTF-8 is the only character
    set supported, und there is no plan to support anything else in the
    long-term future.  In the shell, we have no need for any solutions
    more general than required for that scope.  If you want to call solutions
    good enough for that scope "non-portable" or "hacks", fair enough,
    but we neither need nor want more than that.
    
    Yours,
      Ingo
    
    
  • Ingo Schwarze:

    [REPOST] ksh: utf8 full width character support for emacs.c