diff options
-rwxr-xr-x | emscripten.py | 8 | ||||
-rw-r--r-- | src/library.js | 110 | ||||
-rw-r--r-- | system/include/libc/langinfo.h | 118 | ||||
-rw-r--r-- | tests/runner.py | 2 |
4 files changed, 122 insertions, 116 deletions
diff --git a/emscripten.py b/emscripten.py index 8a1fb03e..32be4450 100755 --- a/emscripten.py +++ b/emscripten.py @@ -178,8 +178,14 @@ def main(args): for line in open(header, 'r'): line = line.replace('\t', ' ') m = re.match('^ *# *define +(?P<name>[-\w_.]+) +\(?(?P<value>[-\w_.|]+)\)?.*', line) + if not m: + # Catch enum defines of a very limited sort + m = re.match('^ +(?P<name>[A-Z_\d]+) += +(?P<value>\d+).*', line) if m: - defines[m.group('name')] = m.group('value') + if m.group('name') != m.group('value'): + defines[m.group('name')] = m.group('value') + #else: + # print 'Warning: %s #defined to itself' % m.group('name') # XXX this can happen if we are set to be equal to an enum (with the same name) m = re.match('^ *# *include *["<](?P<name>[\w_.-/]+)[">].*', line) if m: # Find this file diff --git a/src/library.js b/src/library.js index b9da8b3c..42449952 100644 --- a/src/library.js +++ b/src/library.js @@ -4960,163 +4960,163 @@ LibraryManager.library = { // http://pubs.opengroup.org/onlinepubs/000095399/functions/nl_langinfo.html var result; switch (item) { - case 0xE: // CODESET + case {{{ cDefine('CODESET') }}}: result = 'ANSI_X3.4-1968'; break; - case 0x20028: // D_T_FMT + case {{{ cDefine('D_T_FMT') }}}: result = '%a %b %e %H:%M:%S %Y'; break; - case 0x20029: // D_FMT + case {{{ cDefine('D_FMT') }}}: result = '%m/%d/%y'; break; - case 0x2002A: // T_FMT + case {{{ cDefine('T_FMT') }}}: result = '%H:%M:%S'; break; - case 0x2002B: // T_FMT_AMPM + case {{{ cDefine('T_FMT_AMPM') }}}: result = '%I:%M:%S %p'; break; - case 0x20026: // AM_STR + case {{{ cDefine('AM_STR') }}}: result = 'AM'; break; - case 0x20027: // PM_STR + case {{{ cDefine('PM_STR') }}}: result = 'PM'; break; - case 0x20007: // DAY_1 + case {{{ cDefine('DAY_1') }}}: result = 'Sunday'; break; - case 0x20008: // DAY_2 + case {{{ cDefine('DAY_2') }}}: result = 'Monday'; break; - case 0x20009: // DAY_3 + case {{{ cDefine('DAY_3') }}}: result = 'Tuesday'; break; - case 0x2000A: // DAY_4 + case {{{ cDefine('DAY_4') }}}: result = 'Wednesday'; break; - case 0x2000B: // DAY_5 + case {{{ cDefine('DAY_5') }}}: result = 'Thursday'; break; - case 0x2000C: // DAY_6 + case {{{ cDefine('DAY_6') }}}: result = 'Friday'; break; - case 0x2000D: // DAY_7 + case {{{ cDefine('DAY_7') }}}: result = 'Saturday'; break; - case 0x20000: // ABDAY_1 + case {{{ cDefine('ABDAY_1') }}}: result = 'Sun'; break; - case 0x20001: // ABDAY_2 + case {{{ cDefine('ABDAY_2') }}}: result = 'Mon'; break; - case 0x20002: // ABDAY_3 + case {{{ cDefine('ABDAY_3') }}}: result = 'Tue'; break; - case 0x20003: // ABDAY_4 + case {{{ cDefine('ABDAY_4') }}}: result = 'Wed'; break; - case 0x20004: // ABDAY_5 + case {{{ cDefine('ABDAY_5') }}}: result = 'Thu'; break; - case 0x20005: // ABDAY_6 + case {{{ cDefine('ABDAY_6') }}}: result = 'Fri'; break; - case 0x20006: // ABDAY_7 + case {{{ cDefine('ABDAY_7') }}}: result = 'Sat'; break; - case 0x2001A: // MON_1 + case {{{ cDefine('MON_1') }}}: result = 'January'; break; - case 0x2001B: // MON_2 + case {{{ cDefine('MON_2') }}}: result = 'February'; break; - case 0x2001C: // MON_3 + case {{{ cDefine('MON_3') }}}: result = 'March'; break; - case 0x2001D: // MON_4 + case {{{ cDefine('MON_4') }}}: result = 'April'; break; - case 0x2001E: // MON_5 + case {{{ cDefine('MON_5') }}}: result = 'May'; break; - case 0x2001F: // MON_6 + case {{{ cDefine('MON_6') }}}: result = 'June'; break; - case 0x20020: // MON_7 + case {{{ cDefine('MON_7') }}}: result = 'July'; break; - case 0x20021: // MON_8 + case {{{ cDefine('MON_8') }}}: result = 'August'; break; - case 0x20022: // MON_9 + case {{{ cDefine('MON_9') }}}: result = 'September'; break; - case 0x20023: // MON_10 + case {{{ cDefine('MON_10') }}}: result = 'October'; break; - case 0x20024: // MON_11 + case {{{ cDefine('MON_11') }}}: result = 'November'; break; - case 0x20025: // MON_12 + case {{{ cDefine('MON_12') }}}: result = 'December'; break; - case 0x2000E: // ABMON_1 + case {{{ cDefine('ABMON_1') }}}: result = 'Jan'; break; - case 0x2000F: // ABMON_2 + case {{{ cDefine('ABMON_2') }}}: result = 'Feb'; break; - case 0x20010: // ABMON_3 + case {{{ cDefine('ABMON_3') }}}: result = 'Mar'; break; - case 0x20011: // ABMON_4 + case {{{ cDefine('ABMON_4') }}}: result = 'Apr'; break; - case 0x20012: // ABMON_5 + case {{{ cDefine('ABMON_5') }}}: result = 'May'; break; - case 0x20013: // ABMON_6 + case {{{ cDefine('ABMON_6') }}}: result = 'Jun'; break; - case 0x20014: // ABMON_7 + case {{{ cDefine('ABMON_7') }}}: result = 'Jul'; break; - case 0x20015: // ABMON_8 + case {{{ cDefine('ABMON_8') }}}: result = 'Aug'; break; - case 0x20016: // ABMON_9 + case {{{ cDefine('ABMON_9') }}}: result = 'Sep'; break; - case 0x20017: // ABMON_10 + case {{{ cDefine('ABMON_10') }}}: result = 'Oct'; break; - case 0x20018: // ABMON_11 + case {{{ cDefine('ABMON_11') }}}: result = 'Nov'; break; - case 0x20019: // ABMON_12 + case {{{ cDefine('ABMON_12') }}}: result = 'Dec'; break; - case 0x2002F: // ALT_DIGITS + case {{{ cDefine('ALT_DIGITS') }}}: result = ''; break; - case 0x10000: // RADIXCHAR + case {{{ cDefine('RADIXCHAR') }}}: result = '.'; break; - case 0x10001: // THOUSEP + case {{{ cDefine('THOUSEP') }}}: result = ''; break; - case 0x50000: // YESEXPR + case {{{ cDefine('YESEXPR') }}}: result = '^[yY]'; break; - case 0x50001: // NOEXPR + case {{{ cDefine('NOEXPR') }}}: result = '^[nN]'; break; - case 0x4000F: // CRNCYSTR + case {{{ cDefine('CRNCYSTR') }}}: result = '-'; break; - case 0x2002C: // ERA - case 0x2002E: // ERA_D_FMT - case 0x20030: // ERA_D_T_FMT - case 0x20031: // ERA_T_FMT + case {{{ cDefine('ERA') }}}: + case {{{ cDefine('ERA_D_FMT') }}}: + case {{{ cDefine('ERA_D_T_FMT') }}}: + case {{{ cDefine('ERA_T_FMT') }}}: default: result = ''; break; diff --git a/system/include/libc/langinfo.h b/system/include/libc/langinfo.h index 9040adef..23bddb96 100644 --- a/system/include/libc/langinfo.h +++ b/system/include/libc/langinfo.h @@ -41,140 +41,140 @@ enum __nl_item to maintain backward compatibility. */ _NL_CTYPE_CODESET_NAME = 0, /* codeset name */ #define CODESET _NL_CTYPE_CODESET_NAME - D_T_FMT, /* string for formatting date and time */ + D_T_FMT = 1, /* string for formatting date and time */ #define D_T_FMT D_T_FMT - D_FMT, /* date format string */ + D_FMT = 2, /* date format string */ #define D_FMT D_FMT - T_FMT, /* time format string */ + T_FMT = 3, /* time format string */ #define T_FMT T_FMT - T_FMT_AMPM, /* a.m. or p.m. time formatting string */ + T_FMT_AMPM = 4, /* a.m. or p.m. time formatting string */ #define T_FMT_AMPM T_FMT_AMPM - AM_STR, /* Ante Meridian affix */ + AM_STR = 5, /* Ante Meridian affix */ #define AM_STR AM_STR - PM_STR, /* Post Meridian affix */ + PM_STR = 6, /* Post Meridian affix */ #define PM_STR PM_STR /* week day names */ - DAY_1, + DAY_1 = 7, #define DAY_1 DAY_1 - DAY_2, + DAY_2 = 8, #define DAY_2 DAY_2 - DAY_3, + DAY_3 = 9, #define DAY_3 DAY_3 - DAY_4, + DAY_4 = 10, #define DAY_4 DAY_4 - DAY_5, + DAY_5 = 11, #define DAY_5 DAY_5 - DAY_6, + DAY_6 = 12, #define DAY_6 DAY_6 - DAY_7, + DAY_7 = 13, #define DAY_7 DAY_7 /* abbreviated week day names */ - ABDAY_1, + ABDAY_1 = 14, #define ABDAY_1 ABDAY_1 - ABDAY_2, + ABDAY_2 = 15, #define ABDAY_2 ABDAY_2 - ABDAY_3, + ABDAY_3 = 16, #define ABDAY_3 ABDAY_3 - ABDAY_4, + ABDAY_4 = 17, #define ABDAY_4 ABDAY_4 - ABDAY_5, + ABDAY_5 = 18, #define ABDAY_5 ABDAY_5 - ABDAY_6, + ABDAY_6 = 19, #define ABDAY_6 ABDAY_6 - ABDAY_7, + ABDAY_7 = 20, #define ABDAY_7 ABDAY_7 /* month names */ - MON_1, + MON_1 = 21, #define MON_1 MON_1 - MON_2, + MON_2 = 22, #define MON_2 MON_2 - MON_3, + MON_3 = 23, #define MON_3 MON_3 - MON_4, + MON_4 = 24, #define MON_4 MON_4 - MON_5, + MON_5 = 25, #define MON_5 MON_5 - MON_6, + MON_6 = 26, #define MON_6 MON_6 - MON_7, + MON_7 = 27, #define MON_7 MON_7 - MON_8, + MON_8 = 28, #define MON_8 MON_8 - MON_9, + MON_9 = 29, #define MON_9 MON_9 - MON_10, + MON_10 = 30, #define MON_10 MON_10 - MON_11, + MON_11 = 31, #define MON_11 MON_11 - MON_12, + MON_12 = 32, #define MON_12 MON_12 /* abbreviated month names */ - ABMON_1, + ABMON_1 = 33, #define ABMON_1 ABMON_1 - ABMON_2, + ABMON_2 = 34, #define ABMON_2 ABMON_2 - ABMON_3, + ABMON_3 = 35, #define ABMON_3 ABMON_3 - ABMON_4, + ABMON_4 = 36, #define ABMON_4 ABMON_4 - ABMON_5, + ABMON_5 = 37, #define ABMON_5 ABMON_5 - ABMON_6, + ABMON_6 = 38, #define ABMON_6 ABMON_6 - ABMON_7, + ABMON_7 = 39, #define ABMON_7 ABMON_7 - ABMON_8, + ABMON_8 = 40, #define ABMON_8 ABMON_8 - ABMON_9, + ABMON_9 = 41, #define ABMON_9 ABMON_9 - ABMON_10, + ABMON_10 = 42, #define ABMON_10 ABMON_10 - ABMON_11, + ABMON_11 = 43, #define ABMON_11 ABMON_11 - ABMON_12, + ABMON_12 = 44, #define ABMON_12 ABMON_12 - ERA, /* era description segments */ + ERA = 45, /* era description segments */ #define ERA ERA - ERA_D_FMT, /* era date format string */ + ERA_D_FMT = 46, /* era date format string */ #define ERA_D_FMT ERA_D_FMT - ERA_D_T_FMT, /* era date and time format string */ + ERA_D_T_FMT = 47, /* era date and time format string */ #define ERA_D_T_FMT ERA_D_T_FMT - ERA_T_FMT, /* era time format string */ + ERA_T_FMT = 48, /* era time format string */ #define ERA_T_FMT ERA_T_FMT - ALT_DIGITS, /* alternative symbols for digits */ + ALT_DIGITS = 49, /* alternative symbols for digits */ #define ALT_DIGITS ALT_DIGITS - RADIXCHAR, /* radix char */ + RADIXCHAR = 50, /* radix char */ #define RADIXCHAR RADIXCHAR - THOUSEP, /* separator for thousands */ + THOUSEP = 51, /* separator for thousands */ #define THOUSEP THOUSEP - YESEXPR, /* affirmative response expression */ + YESEXPR = 52, /* affirmative response expression */ #define YESEXPR YESEXPR - NOEXPR, /* negative response expression */ + NOEXPR = 53, /* negative response expression */ #define NOEXPR NOEXPR - YESSTR, /* affirmative response for yes/no queries */ + YESSTR = 54, /* affirmative response for yes/no queries */ #define YESSTR YESSTR - NOSTR, /* negative response for yes/no queries */ + NOSTR = 55, /* negative response for yes/no queries */ #define NOSTR NOSTR - CRNCYSTR, /* currency symbol */ + CRNCYSTR = 56, /* currency symbol */ #define CRNCYSTR CRNCYSTR - D_MD_ORDER, /* month/day order (BSD extension) */ + D_MD_ORDER = 57, /* month/day order (BSD extension) */ #define D_MD_ORDER D_MD_ORDER _NL_TIME_DATE_FMT = 84, /* date fmt used by date(1) (GNU extension) */ #define _DATE_FMT _NL_TIME_DATE_FMT #ifdef __HAVE_LOCALE_INFO__ - _NL_CTYPE_MB_CUR_MAX, - _NL_MESSAGES_CODESET, + _NL_CTYPE_MB_CUR_MAX = 85, + _NL_MESSAGES_CODESET = 86, #ifdef __HAVE_LOCALE_INFO_EXTENDED__ diff --git a/tests/runner.py b/tests/runner.py index f6d29e2a..549f63f1 100644 --- a/tests/runner.py +++ b/tests/runner.py @@ -2380,7 +2380,7 @@ if 'benchmark' not in str(sys.argv): def test_langinfo(self): src = open(path_from_root('tests', 'langinfo', 'test.c'), 'r').read() expected = open(path_from_root('tests', 'langinfo', 'output.txt'), 'r').read() - self.do_test(src, expected) + self.do_test(src, expected, extra_emscripten_args=['-H', 'libc/langinfo.h']) def test_files(self): global CORRECT_SIGNS; CORRECT_SIGNS = 1 # Just so our output is what we expect. Can flip them both. |