[#43120] [ruby-trunk - Bug #6124][Open] What is the purpose of "fake" gems in Ruby — Vit Ondruch <v.ondruch@...>

27 messages 2012/03/07

[#43142] Questions about thread performance (with benchmark included) — Rodrigo Rosenfeld Rosas <rr.rosas@...>

A while ago I've written an article entitled "How Nokogiri and JRuby

10 messages 2012/03/08

[#43148] [ruby-trunk - Feature #6126][Open] Introduce yes/no constants aliases for true/false — Egor Homakov <homakov@...>

16 messages 2012/03/09

[#43238] [ruby-trunk - Feature #6130][Open] inspect using to_s is pain — Thomas Sawyer <transfire@...>

21 messages 2012/03/11

[#43313] [ruby-trunk - Feature #6150][Open] add Enumerable#grep_v — Suraj Kurapati <sunaku@...>

17 messages 2012/03/15

[#43325] [ruby-trunk - Bug #6154][Open] Eliminate extending WaitReadable/Writable at runtime — Charles Nutter <headius@...>

25 messages 2012/03/16

[#43334] [ruby-trunk - Bug #6155][Open] Enumerable::Lazy#flat_map raises an exception when an element does not respond to #each — Dan Kubb <dan.kubb@...>

9 messages 2012/03/16

[#43370] [ruby-trunk - Feature #6166][Open] Enumerator::Lazy#pinch — Thomas Sawyer <transfire@...>

15 messages 2012/03/17

[#43373] [ruby-trunk - Bug #6168][Open] Segfault in OpenSSL bindings — Nguma Abojo <git.email.address@...>

14 messages 2012/03/17

[#43454] [ruby-trunk - Bug #6174][Open] Fix collision of ConditionVariable#wait timeout and #signal (+ other cosmetic changes) — "funny_falcon (Yura Sokolov)" <funny.falcon@...>

10 messages 2012/03/18

[#43497] [ruby-trunk - Bug #6179][Open] File::pos broken in Windows 1.9.3p125 — "jmthomas (Jason Thomas)" <jmthomas@...>

24 messages 2012/03/20

[#43502] [ruby-trunk - Feature #6180][Open] to_b for converting objects to a boolean value — "AaronLasseigne (Aaron Lasseigne)" <aaron.lasseigne@...>

17 messages 2012/03/20

[#43529] [ruby-trunk - Bug #6183][Open] Enumerator::Lazy performance issue — "gregolsen (Innokenty Mikhailov)" <anotheroneman@...>

36 messages 2012/03/21

[#43543] [ruby-trunk - Bug #6184][Open] [BUG] Segmentation fault ruby 1.9.3p165 (2012-03-18 revision 35078) [x86_64-darwin11.3.0] — "Gebor (Pierre-Henry Frohring)" <frohring.pierrehenry@...>

8 messages 2012/03/21

[#43672] [ruby-trunk - Feature #6201][Open] do_something then return :special_case (include "then" operator) — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

12 messages 2012/03/26

[#43678] [ruby-trunk - Bug #6203][Open] Array#values_at does not handle ranges with end index past the end of the array — "ferrous26 (Mark Rada)" <markrada26@...>

15 messages 2012/03/26

[#43794] [ruby-trunk - Feature #6216][Open] SystemStackError backtraces should not be reduced to one line — "postmodern (Hal Brodigan)" <postmodern.mod3@...>

15 messages 2012/03/28

[#43814] [ruby-trunk - Feature #6219][Open] Return value of Hash#store — "MartinBosslet (Martin Bosslet)" <Martin.Bosslet@...>

20 messages 2012/03/28

[#43858] [ruby-trunk - Feature #6222][Open] Use ++ to connect statements — "gcao (Guoliang Cao)" <gcao99@...>

12 messages 2012/03/29

[#43904] [ruby-trunk - Feature #6225][Open] Hash#+ — "trans (Thomas Sawyer)" <transfire@...>

36 messages 2012/03/29

[#43951] [ruby-trunk - Bug #6228][Open] [mingw] Errno::EBADF in ruby/test_io.rb on ruby_1_9_3 — "jonforums (Jon Forums)" <redmine@...>

28 messages 2012/03/30

[#43996] [ruby-trunk - Bug #6236][Open] WEBrick::HTTPServer swallows Exception — "regularfry (Alex Young)" <alex@...>

13 messages 2012/03/31

[ruby-core:43060] [ruby-trunk - Bug #6108][Open] plain-char for isdigit()

From: Nobuyoshi Nakada <nobu@...>
Date: 2012-03-02 22:52:05 UTC
List: ruby-core #43060
Issue #6108 has been reported by Nobuyoshi Nakada.

----------------------------------------
Bug #6108: plain-char for isdigit()
https://bugs.ruby-lang.org/issues/6108

Author: Nobuyoshi Nakada
Status: Open
Priority: Normal
Assignee: 
Category: ext
Target version: 
ruby -v: r34880


=begin
On cygwin, syck is warned as:
  compiling rubyext.c
  rubyext.c: In function 'mktime_do':
  rubyext.c:280:9: warning: array subscript has type 'char'
  compiling token.c
  token.re: In function 'sycklex_yaml_utf8':
  token.re:942:13: warning: array subscript has type 'char'

These come from isdigit() with plain char.

Citing from ctype.h of cygwin:
  /* These macros are intentionally written in a manner that will trigger
     a gcc -Wall warning if the user mistakenly passes a 'char' instead
     of an int containing an 'unsigned char'.  Note that the sizeof will
     always be 1, which is what we want for mapping EOF to __ctype_ptr__[0];
     the use of a raw index inside the sizeof triggers the gcc warning if
     __c was of type char, and sizeof masks side effects of the extra __c.
     Meanwhile, the real index to __ctype_ptr__+1 must be cast to int,
     since isalpha(0x100000001LL) must equal isalpha(1), rather than being
     an out-of-bounds reference on a 64-bit machine.  */
  #define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)])

And Linux manpage of ctype also states as:
  DESCRIPTION
       These functions check whether c, which must have the value of
       an unsigned char or EOF, falls into a certain character class
       according to the current locale.

Therefore, you MUST NOT use plain (or unlikely, signed) char for
isalpha(), isspace(), isdigit(), and so on.  You should use ISALPH()
etc instead, or cast as unsigned char explicitly.

 =end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next