bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

utf8


From: Ricardo Cantu
Subject: utf8
Date: Thu, 5 Jan 2006 09:02:35 -0600
User-agent: KMail/1.9.1

It seems that the handling of utf8 chars may have changed between versions 5.4 
and 5.5.

The following code would display all the box drawing elements fine in 5.4 but 
not in 5.5.

I'm patched to ncurses-5.5-20051231.patch

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <ncurses.h>

int
main ()
{
  int             i;
  char           *UniBlock[] = {
    "\xE2\x96\x91", /* B0 1 U+2591 LIGHT SHADE */
    "\xE2\x96\x92", /* B1 2 U+2592 MEDIUM SHADE */
    "\xE2\x96\x93", /* B2 3 U+2593 DARK SHADE */
    "\xE2\x94\x82", /* B3 4  │ U+2502 LIGHT VERTICAL */
    "\xE2\x94\xA4", /* B4 5  ┤ U+2524 LIGHT VERTICAL AND LEFT */
    "\xE2\x95\xA1", /* B5 6  ╡ U+2561 VERTICAL SINGLE AND LEFT DOUBLE */
    "\xE2\x95\xA2", /* B6 7  ╢ U+2562 VERTICAL DOUBLE AND LEFT SINGLE */
    "\xE2\x95\x96", /* B7 8  ╖ U+2556 DOWN DOUBLE AND LEFT SINGLE */
    "\xE2\x95\x95", /* B8 9  ╕ U+2555 DOWN SINGLE AND LEFT DOUBLE */
    "\xE2\x95\xA3", /* B9 10 ╣ U+2563 DOUBLE VERTICAL AND LEFT */
    "\xE2\x95\x91", /* BA 11 ║ U+2551 DOUBLE VERTICAL */
    "\xE2\x95\x97", /* BB 12 ╗ U+2557 DOUBLE DOWN AND LEFT */
    "\xE2\x95\x9D", /* BC 13 */
    "\xE2\x95\x9C", /* BD 14 */
    "\xE2\x95\x9B", /* BE 15 */
    "\xE2\x94\x90", /* BF 16 ┐ U+2510 LIGHT DOWN AND LEFT */
    "\xE2\x94\x94", /* C0 17 └ U+2514 LIGHT UP AND RIGHT */
    "\xE2\x94\xB4", /* C1 18 */
    "\xE2\x94\xAC", /* C2 19 */
    "\xE2\x94\xA3", /* 20 */
    "\xE2\x94\x80", /* 21 */
    "\xE2\x94\xBC", /* 22 */
    "\xE2\x95\x9E", /* 23 */
    "\xE2\x95\x9F", /* 24 */
    "\xE2\x95\x9A", /* 25 */
    "\xE2\x95\x94", /* 26 */
    "\xE2\x95\xA9", /* 27 */
    "\xE2\x95\xA6", /* 28 */
    "\xE2\x95\xA0", /* 29 */
    "\xE2\x95\x90", /* 30 */
    "\xE2\x95\xAC", /* 31 */
    "\xE2\x95\xA7", /* 32 */
    "\xE2\x95\xA8", /* 33 */
    "\xE2\x95\xA4", /* 34 */
    "\xE2\x95\xA5", /* 35 */
    "\xE2\x95\x99", /* 36 */
    "\xE2\x95\x98", /* 37 */
    "\xE2\x95\x92", /* 38 */
    "\xE2\x95\x93", /* 39 */
    "\xE2\x95\xAB", /* 40 */
    "\xE2\x95\xAA", /* 41 */
    "\xE2\x94\x98", /* 42 */
    "\xE2\x94\x8C", /* 43 */
    "\xE2\x96\x88", /* 44 */
    "\xE2\x96\x84", /* 45 */
    "\xE2\x96\x8C", /* 46 */
    "\xE2\x96\x90", /* 47 */
    "\xE2\x96\x80"
  };

  initscr ();                                          /* Initialize curses */
  noecho ();
  setlocale (LC_ALL, "");
  
  for (i = 0; i < (sizeof (UniBlock) / 4); i++)
  {
      addstr (UniBlock[i]);
  }

  refresh ();
  getch ();
  endwin ();
  return (0);
}





reply via email to

[Prev in Thread] Current Thread [Next in Thread]