Hi Bram,

On 9/11/07, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
> [...]
> Thanks for looking into this.  Looks good.  Except that a check for
> UNICODE16 is needed, if that is defined then we really can use only 16
> bits.

Do you mean this?

Index: src/screen.c
===================================================================
--- src/screen.c        (revision 513)
+++ src/screen.c        (working copy)
@@ -2304,10 +2304,12 @@
                    else
                        prev_c = u8c;
 #endif
+#ifdef UNICODE16
                    /* Non-BMP character: display as ? or fullwidth ?. */
                    if (u8c >= 0x10000)
-                       ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?';
+                       ScreenLinesUC[idx] = (cells == 2) ? 0xff1f : (int)'?';
                    else
+#endif
                        ScreenLinesUC[idx] = u8c;
                    for (i = 0; i < Screen_mco; ++i)
                    {
@@ -3678,25 +3680,32 @@
                    if ((mb_l == 1 && c >= 0x80)
                            || (mb_l >= 1 && mb_c == 0)
                            || (mb_l > 1 && (!vim_isprintc(mb_c)
-                                                        || mb_c >= 0x10000)))
+#ifdef UNICODE16
+                                                || mb_c >= 0x10000
+#endif
+                                    )))
                    {
                        /*
                         * Illegal UTF-8 byte: display as <xx>.
                         * Non-BMP character : display as ? or fullwidth ?.
                         */
+#ifdef UNICODE16
                        if (mb_c < 0x10000)
                        {
+#endif
                            transchar_hex(extra, mb_c);
 # ifdef FEAT_RIGHTLEFT
                            if (wp->w_p_rl)             /* reverse */
                                rl_mirror(extra);
 # endif
+#ifdef UNICODE16
                        }
                        else if (utf_char2cells(mb_c) != 2)
                            STRCPY(extra, "?");
                        else
                            /* 0xff1f in UTF-8: full-width '?' */
                            STRCPY(extra, "\357\274\237");
+#endif

                        p_extra = extra;
                        c = *p_extra;
@@ -6246,12 +6255,14 @@
                    u8c = utfc_ptr2char(ptr, u8cc);
                mbyte_cells = utf_char2cells(u8c);
                /* Non-BMP character: display as ? or fullwidth ?. */
+#ifdef UNICODE16
                if (u8c >= 0x10000)
                {
                    u8c = (mbyte_cells == 2) ? 0xff1f : (int)'?';
                    if (attr == 0)
                        attr = hl_attr(HLF_8);
                }
+#endif
 # ifdef FEAT_ARABIC
                if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c))
                {

>
> --
> GUARD #2:  Wait a minute -- supposing two swallows carried it together?
> GUARD #1:  No, they'd have to have it on a line.
> GUARD #2:  Well, simple!  They'd just use a standard creeper!
> GUARD #1:  What, held under the dorsal guiding feathers?
> GUARD #2:  Well, why not?
>                                   The Quest for the Holy Grail (Monty Python)
>
>  /// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net   \\\
> ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
> \\\        download, build and distribute -- http://www.A-A-P.org        ///
>  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui