Changeset 103 in svn for trunk/processor/string.m4


Ignore:
Timestamp:
2006-08-27T07:09:02+02:00 (9 years ago)
Author:
Xuefer
Message:

PHP_6: builds again with php6. update UChar/void ptr to zstr.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/string.m4

    r100 r103  
    33define(`PROC_STRING_N_EX', `
    44    pushdef(`STRTYPE', `ifelse(`$5',,`char',`$5')')
    5     pushdef(`ISTYPE', ifelse(STRTYPE,`char',IS_STRING,IS_UNICODE))
    6     if ($2 == NULL) {
     5    pushdef(`PTRTYPE', ifelse(
     6            STRTYPE, `char',      `char',
     7            STRTYPE, `zstr_char', `char',
     8            `',      `',          `UChar'))
     9    pushdef(`ISTYPE', ifelse(STRTYPE,`zstr_uchar',IS_UNICODE,IS_STRING))
     10    pushdef(`UNI_STRLEN', ifelse(
     11            STRTYPE, `zstr_uchar', `xc_zstrlen_uchar',
     12            STRTYPE, `zstr_char',  `xc_zstrlen_char',
     13            `',      `',           `strlen'))
     14    pushdef(`SRCSTR', ifelse(STRTYPE,`char',`ZSTR($2)',`$2'))
     15    pushdef(`SRCPTR', ifelse(
     16            STRTYPE, `zstr_uchar', `ZSTR_U($2)',
     17            STRTYPE, `zstr_char',  `ZSTR_S($2)',
     18            `',      `',           `$2'))
     19    pushdef(`DSTPTR', ifelse(
     20            STRTYPE, `zstr_uchar', `ZSTR_U($1)',
     21            STRTYPE, `zstr_char',  `ZSTR_S($1)',
     22            `',      `',           `$1'))
     23    if (SRCPTR == NULL) {
    724        IFNOTMEMCPY(`IFCOPY(`
    8             $1 = NULL;
     25            DSTPTR = NULL;
    926        ')')
    1027        IFDASM(`
     
    1431    else {
    1532        IFDPRINT(`INDENT()
    16             ifelse(STRTYPE, `UChar', `
     33            ifelse(STRTYPE, `zstr_uchar', `
    1734#ifdef IS_UNICODE
    1835            do {
     
    3249#endif
    3350            ', `
    34             fprintf(stderr, "string:%s:\t\"%s\" len=%d\n", "$1", $2, $3 - 1);
     51            fprintf(stderr, "string:%s:\t\"%s\" len=%d\n", "$1", SRCPTR, $3 - 1);
    3552            ')
    3653        ')
    37         IFCALC(`xc_calc_string_n(processor, ISTYPE, (void *) $2, `$3' IFASSERT(`, __LINE__'));')
    38         IFSTORE(`$1 = (STRTYPE *) xc_store_string_n(processor, ISTYPE, (char *) $2, `$3' IFASSERT(`, __LINE__'));')
     54        IFCALC(`xc_calc_string_n(processor, ISTYPE, SRCSTR, $3 IFASSERT(`, __LINE__'));')
     55        IFSTORE(`DSTPTR = ifelse(PTRTYPE,`char',`ZSTR_S',`ZSTR_U')(xc_store_string_n(processor, ISTYPE, SRCSTR, $3 IFASSERT(`, __LINE__')));')
    3956        IFRESTORE(`
    40             ALLOC(`$1', `STRTYPE', `($3)')
    41             memcpy($1, $2, sizeof(STRTYPE) * ($3));
     57            ALLOC(DSTPTR, `STRTYPE', `($3)')
     58            memcpy(DSTPTR, SRCPTR, sizeof(STRTYPE) * ($3));
    4259        ')
    43         FIXPOINTER_EX(`STRTYPE', `$1')
     60        FIXPOINTER_EX(`PTRTYPE', DSTPTR)
    4461        IFDASM(`
    45                 ifelse(STRTYPE,UChar, `
     62                ifelse(STRTYPE,zstr_uchar, `
    4663                    add_assoc_unicodel_ex(dst, ZEND_STRS("$4"), $2, $3-1, 1);
    4764                    ', ` dnl else
     
    4966                ')
    5067    }
     68    popdef(`DSTPTR')
     69    popdef(`SRCPTR')
     70    popdef(`SRCSTR')
     71    popdef(`UNI_STRLEN')
    5172    popdef(`STRTYPE')
    5273    popdef(`ISTYPE')
     
    5980define(`PROC_STRING',   `DBG(`$0($*)') DONE(`$1')`'PROC_STRING_N_EX(`dst->$1', `src->$1', `strlen(src->$1) + 1', `$1', `char')')
    6081
    61 dnl {{{ PROC_USTRING_N(1:type, 2:name, 3:size, 4:size_type)
    62 define(`PROC_USTRING_N', `
     82dnl {{{ PROC_ZSTRING_N(1:type, 2:name, 3:size, 4:size_type)
     83define(`PROC_ZSTRING_N', `
    6384    DBG(`$0($*)')
    6485#ifdef IS_UNICODE
    6586    pushdef(`NSIZE', ifelse(
    66             `$4', `strlen', `strlen(src->$2) + 1',
     87            `$4', `strlen', `UNI_STRLEN (src->$2) + 1',
    6788            `$4', `len',    `src->$3 + 1',
    6889            `',   `',       `src->$3',
    6990            ))
    7091    DONE(`$2')
    71     ifelse(`$1', `1', `PROC_STRING_N_EX(`dst->$2', `src->$2', NSIZE, `$2', `UChar')
     92    ifelse(`$1', `1', `PROC_STRING_N_EX(`dst->$2', `src->$2', defn(`NSIZE'), `$2', `zstr_uchar')
    7293    ', `
    73         if (ifelse(`$1', `', `UG(unicode)', `src->$1')) {
    74             PROC_STRING_N_EX(`dst->$2', `src->$2', NSIZE, `$2', `UChar')
     94        if (ifelse(`$1', `', `UG(unicode)', `src->$1 == IS_UNICODE')) {
     95            PROC_STRING_N_EX(`dst->$2', `src->$2', defn(`NSIZE'), `$2', `zstr_uchar')
    7596        }
    7697        else {
    77             PROC_STRING_N_EX(`dst->$2', `src->$2', NSIZE, `$2', `char')
     98            PROC_STRING_N_EX(`dst->$2', `src->$2', defn(`NSIZE'), `$2', `zstr_char')
    7899        }
    79100    ')
    80101#else
    81102    DONE(`$2')
    82     PROC_STRING_N_EX(`dst->$2', `src->$2', NSIZE, `$2', `char')
     103    PROC_STRING_N_EX(`dst->$2', `src->$2', NSIZE, `$2', `zstr_char')
    83104#endif
    84105    popdef(`NSIZE')
    85106')
    86107// }}}
    87 define(`PROC_USTRING_L', `DBG(`$0($*)') PROC_USTRING_N(`$1', `$2', `$3', `len')')
    88 define(`PROC_USTRING', `DBG(`$0($*)') PROC_USTRING_N(`$1', `$2', , `strlen')')
     108define(`PROC_ZSTRING_L', `DBG(`$0($*)') PROC_ZSTRING_N(`$1', `$2', `$3', `len')')
     109define(`PROC_ZSTRING', `DBG(`$0($*)') PROC_ZSTRING_N(`$1', `$2', , `strlen')')
Note: See TracChangeset for help on using the changeset viewer.