[ トップ | 一覧 | 編集 | 差分 | 単語検索 | 最終更新 | ]
/* hrefStop
文字 x が href の value として許容されるか判定する。 対象文字列に対し連続して呼ばれる低レベル関数。
戻り値: 1..許容 / 0..非許容 */
#ifdef oldcode
int hrefStop(char x) { if('A' <= x && x <= 'Z') return 0 ; if('a' <= x && x <= 'z') return 0 ; if('0' <= x && x <= '9') return 0 ; if(x == '#') return 0 ; if(x == '/') return 0 ; if(x == '~') return 0 ; if(x == '_') return 0 ; if(x == '.') return 0 ; if(x == ',') return 0 ; if(x == '$') return 0 ; if(x == '%') return 0 ; if(x == '&') return 0 ; if(x == '@') return 0 ; if(x == '?') return 0 ; if(x == '=') return 0 ; if(x == '-') return 0 ; if(x == '+') return 0 ; if(x == '*') return 0 ; if(x == ';') return 0 ; if(x == ':') return 0 ; if(x == '!') return 0 ; if(x == '^') return 0 ; if(x == '`') return 0 ; if(x == '|') return 0 ; if(x == '[') return 0 ; if(x == ']') return 0 ; if(x == '{') return 0 ; if(x == '}') return 0 ; if(x == '\\') return 0 ; return 1 ; }
#else /* !oldcode */
改良版hrefStop
const char s_pHrefTable[] = { 1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
#define hrefStop(x) (isgraph(x) ? s_pHrefTable[(x)-0x20] : 1)
#endif /* !oldcode */
TODO
isgraph()もテーブルに押し込めろ
改良版hrefStop2
#define hrefStop(x) (s_pHrefTable[x])
const char s_pHrefTable[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //0 - 15 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //16 - 31 1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0, //32 - 47 0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, //48 - 63 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //64 - 79 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //80 - 95 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, //96 - 111 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, //112 - 127 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //128 - 143 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //144 - 159 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //160 - 175 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //176 - 191 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //192 - 207 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //208 - 223 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, //224 - 239 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 //240 - 255 };
YukiWiki 1.6.2 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by aki.