On 11/07/2013 05:58 AM, Steffen Daode Nurpmeso wrote:
Karl Williamson <pub...@khwilliamson.com> wrote:
  |On 11/06/2013 03:43 AM, Steffen Daode Nurpmeso wrote:
  |> Philippe Verdy <verd...@wanadoo.fr> wrote:
  |>|2013/11/5 Steffen Daode <sdao...@gmail.com>
  |>|> (The problem i'm facing is that _PRINT and _GRAPH cannot be set
  |>|> for some properties from PropList.txt, say, _PRINT can't be set
  |>|> for U+0009, CHARACTER TABULATION (ht), since it's a Cc, but in
  |>|
  |>|TAB is "printable" (for the isprint() macro in standard \
  |>|C librries) because
  |>
  |> Nope according to POSIX, Vol. 1: Base Definitions, 7.3.1. LC_CTYPE ([1]):
  |
  |The only vendor I'm aware of that makes TAB a printable is Microsoft.
  |Thus Philippe is wrong about this except for MS products.

That made me curious, and it doesn't seem to be right [1].

   isprint returns a nonzero value if c is a printable character—this
   includes the space character (0x20 – 0x7E).

   The behavior of isprint and _isprint_l is undefined if c is not
   EOF or in the range 0 through 0xFF, inclusive. When a debug CRT
   library is used and c is not one of these values, the functions
   raise an assertion.

   [1] <http://msdn.microsoft.com/en-us/library/ewx8s4kw(v=vs.110).aspx>


I have various tests that run through all a machine's locales looking for violations of the Posix standard. When run on MS machines, they fail as I've described. Perhaps those machines have old, buggy implementations that have been fixed.



Reply via email to