Ignore:
Timestamp:
Nov 11, 2005 7:01:31 PM (18 years ago)
Author:
bennylp
Message:

First clean compile of pjsip

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/main/pjlib-util/src/pjlib-util/scanner.c

    r32 r43  
    55#include <pj/except.h> 
    66#include <pj/os.h> 
     7#include <pj/errno.h> 
    78 
    89#define PJ_SCAN_IS_SPACE(c)     ((c)==' ' || (c)=='\t') 
     
    1617} 
    1718 
    18 PJ_DEF(void) pj_cs_init( pj_char_spec cs) 
    19 { 
    20     PJ_CHECK_STACK(); 
    21     memset(cs, 0, sizeof(cs)); 
    22 } 
    23  
    24 PJ_DEF(void) pj_cs_set( pj_char_spec cs, int c) 
    25 { 
    26     PJ_CHECK_STACK(); 
    27     cs[c] = 1; 
    28 } 
    29  
    30 PJ_DEF(void) pj_cs_add_range( pj_char_spec cs, int cstart, int cend) 
    31 { 
    32     PJ_CHECK_STACK(); 
    33     while (cstart != cend) 
    34         cs[cstart++] = 1; 
    35 } 
    36  
    37 PJ_DEF(void) pj_cs_add_alpha( pj_char_spec cs) 
    38 { 
    39     pj_cs_add_range( cs, 'a', 'z'+1); 
    40     pj_cs_add_range( cs, 'A', 'Z'+1); 
    41 } 
    42  
    43 PJ_DEF(void) pj_cs_add_num( pj_char_spec cs) 
    44 { 
    45     pj_cs_add_range( cs, '0', '9'+1); 
    46 } 
    47  
    48 PJ_DEF(void) pj_cs_add_str( pj_char_spec cs, const char *str) 
    49 { 
    50     PJ_CHECK_STACK(); 
     19PJ_DEF(void) pj_cis_buf_init( pj_cis_buf_t *cis_buf) 
     20{ 
     21    pj_memset(cis_buf->cis_buf, 0, sizeof(cis_buf->cis_buf)); 
     22    cis_buf->use_mask = 0; 
     23} 
     24 
     25PJ_DEF(pj_status_t) pj_cis_init(pj_cis_buf_t *cis_buf, pj_cis_t *cis) 
     26{ 
     27    unsigned i; 
     28 
     29    cis->cis_buf = cis_buf->cis_buf; 
     30 
     31    for (i=0; i<PJ_CIS_MAX_INDEX; ++i) { 
     32        if ((cis_buf->use_mask & (1 << i)) == 0) { 
     33            cis->cis_index = i; 
     34            return PJ_SUCCESS; 
     35        } 
     36    } 
     37 
     38    cis->cis_index = PJ_CIS_MAX_INDEX; 
     39    return PJ_ETOOMANY; 
     40} 
     41 
     42PJ_DEF(pj_status_t) pj_cis_dup( pj_cis_t *new_cis, pj_cis_t *existing) 
     43{ 
     44    pj_status_t status; 
     45    unsigned i; 
     46 
     47    status = pj_cis_init(existing->cis_buf, new_cis); 
     48    if (status != PJ_SUCCESS) 
     49        return status; 
     50 
     51    for (i=0; i<256; ++i) { 
     52        if (PJ_CIS_ISSET(existing, i)) 
     53            PJ_CIS_SET(new_cis, i); 
     54        else 
     55            PJ_CIS_CLR(new_cis, i); 
     56    } 
     57 
     58    return PJ_SUCCESS; 
     59} 
     60 
     61PJ_DEF(void) pj_cis_add_range(pj_cis_t *cis, int cstart, int cend) 
     62{ 
     63    while (cstart != cend) { 
     64        PJ_CIS_SET(cis, cstart); 
     65        ++cstart; 
     66    } 
     67} 
     68 
     69PJ_DEF(void) pj_cis_add_alpha(pj_cis_t *cis) 
     70{ 
     71    pj_cis_add_range( cis, 'a', 'z'+1); 
     72    pj_cis_add_range( cis, 'A', 'Z'+1); 
     73} 
     74 
     75PJ_DEF(void) pj_cis_add_num(pj_cis_t *cis) 
     76{ 
     77    pj_cis_add_range( cis, '0', '9'+1); 
     78} 
     79 
     80PJ_DEF(void) pj_cis_add_str( pj_cis_t *cis, const char *str) 
     81{ 
    5182    while (*str) { 
    52         cs[(int)*str] = 1; 
     83        PJ_CIS_SET(cis, *str); 
    5384        ++str; 
    5485    } 
    5586} 
    5687 
    57 PJ_DEF(void) pj_cs_del_range( pj_char_spec cs, int cstart, int cend) 
    58 { 
    59     PJ_CHECK_STACK(); 
    60     while (cstart != cend) 
    61         cs[cstart++] = 0; 
    62 } 
    63  
    64 PJ_DEF(void) pj_cs_del_str( pj_char_spec cs, const char *str) 
    65 { 
    66     PJ_CHECK_STACK(); 
     88PJ_DEF(void) pj_cis_del_range( pj_cis_t *cis, int cstart, int cend) 
     89{ 
     90    while (cstart != cend) { 
     91        PJ_CIS_CLR(cis, cstart); 
     92        cstart++; 
     93    } 
     94} 
     95 
     96PJ_DEF(void) pj_cis_del_str( pj_cis_t *cis, const char *str) 
     97{ 
    6798    while (*str) { 
    68         cs[(int)*str] = 0; 
     99        PJ_CIS_CLR(cis, *str); 
    69100        ++str; 
    70101    } 
    71102} 
    72103 
    73 PJ_DEF(void) pj_cs_invert( pj_char_spec cs ) 
     104PJ_DEF(void) pj_cis_invert( pj_cis_t *cis ) 
    74105{ 
    75106    unsigned i; 
    76     PJ_CHECK_STACK(); 
    77     for (i=0; i<sizeof(pj_char_spec)/sizeof(cs[0]); ++i) { 
    78         cs[i] = (pj_char_spec_element_t) !cs[i]; 
     107    for (i=0; i<256; ++i) { 
     108        if (PJ_CIS_ISSET(cis,i)) 
     109            PJ_CIS_CLR(cis,i); 
     110        else 
     111            PJ_CIS_SET(cis,i); 
    79112    } 
    80113} 
     
    166199 
    167200PJ_DEF(int) pj_scan_peek( pj_scanner *scanner, 
    168                            const pj_char_spec spec, pj_str_t *out) 
     201                          const pj_cis_t *spec, pj_str_t *out) 
    169202{ 
    170203    register char *s = scanner->curptr; 
     
    178211    } 
    179212 
    180     while (PJ_SCAN_CHECK_EOF(s) && pj_cs_match(spec, *s)) 
     213    while (PJ_SCAN_CHECK_EOF(s) && pj_cis_match(spec, *s)) 
    181214        ++s; 
    182215 
     
    204237 
    205238PJ_DEF(int) pj_scan_peek_until( pj_scanner *scanner, 
    206                                   const pj_char_spec spec,  
    207                                   pj_str_t *out) 
     239                                const pj_cis_t *spec,  
     240                                pj_str_t *out) 
    208241{ 
    209242    register char *s = scanner->curptr; 
     
    217250    } 
    218251 
    219     while (PJ_SCAN_CHECK_EOF(s) && !pj_cs_match( spec, *s)) 
     252    while (PJ_SCAN_CHECK_EOF(s) && !pj_cis_match( spec, *s)) 
    220253        ++s; 
    221254 
     
    226259 
    227260PJ_DEF(void) pj_scan_get( pj_scanner *scanner, 
    228                            const pj_char_spec spec, pj_str_t *out) 
     261                          const pj_cis_t *spec, pj_str_t *out) 
    229262{ 
    230263    register char *s = scanner->curptr; 
     
    234267    PJ_CHECK_STACK(); 
    235268 
    236     if (pj_scan_is_eof(scanner) || !pj_cs_match(spec, *s)) { 
     269    if (pj_scan_is_eof(scanner) || !pj_cis_match(spec, *s)) { 
    237270        pj_scan_syntax_err(scanner); 
    238271        return; 
     
    241274    do { 
    242275        ++s; 
    243     } while (PJ_SCAN_CHECK_EOF(s) && pj_cs_match(spec, *s)); 
     276    } while (PJ_SCAN_CHECK_EOF(s) && pj_cis_match(spec, *s)); 
    244277 
    245278    pj_strset3(out, scanner->curptr, s); 
     
    396429 
    397430PJ_DEF(void) pj_scan_get_until( pj_scanner *scanner, 
    398                                  const pj_char_spec spec, pj_str_t *out) 
     431                                const pj_cis_t *spec, pj_str_t *out) 
    399432{ 
    400433    register char *s = scanner->curptr; 
     
    409442    } 
    410443 
    411     while (PJ_SCAN_CHECK_EOF(s) && !pj_cs_match(spec, *s)) { 
     444    while (PJ_SCAN_CHECK_EOF(s) && !pj_cis_match(spec, *s)) { 
    412445        ++s; 
    413446    } 
     
    425458 
    426459PJ_DEF(void) pj_scan_get_until_ch( pj_scanner *scanner,  
    427                                     int until_char, pj_str_t *out) 
     460                                   int until_char, pj_str_t *out) 
    428461{ 
    429462    register char *s = scanner->curptr; 
Note: See TracChangeset for help on using the changeset viewer.