亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cordxtra.c

?? Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
{    register chr_data * d = (chr_data *)client_data;    register char * occ = strchr(s, d -> target);        if (occ == 0) {      	d -> pos += strlen(s);      	return(0);    } else {    	d -> pos += occ - s;    	return(1);    }}size_t CORD_chr(CORD x, size_t i, int c){    chr_data d;        d.pos = i;    d.target = c;    if (CORD_iter5(x, i, CORD_chr_proc, CORD_batched_chr_proc, &d)) {        return(d.pos);    } else {    	return(CORD_NOT_FOUND);    }}size_t CORD_rchr(CORD x, size_t i, int c){    chr_data d;        d.pos = i;    d.target = c;    if (CORD_riter4(x, i, CORD_rchr_proc, &d)) {        return(d.pos);    } else {    	return(CORD_NOT_FOUND);    }}/* Find the first occurrence of s in x at position start or later.	*//* This uses an asymptotically poor algorithm, which should typically 	*//* perform acceptably.  We compare the first few characters directly,	*//* and call CORD_ncmp whenever there is a partial match.		*//* This has the advantage that we allocate very little, or not at all.	*//* It's very fast if there are few close misses.			*/size_t CORD_str(CORD x, size_t start, CORD s){    CORD_pos xpos;    size_t xlen = CORD_len(x);    size_t slen;    register size_t start_len;    const char * s_start;    unsigned long s_buf = 0;	/* The first few characters of s	*/    unsigned long x_buf = 0;	/* Start of candidate substring.	*/    				/* Initialized only to make compilers	*/    				/* happy.				*/    unsigned long mask = 0;    register size_t i;    register size_t match_pos;        if (s == CORD_EMPTY) return(start);    if (CORD_IS_STRING(s)) {        s_start = s;        slen = strlen(s);    } else {        s_start = CORD_to_char_star(CORD_substr(s, 0, sizeof(unsigned long)));        slen = CORD_len(s);    }    if (xlen < start || xlen - start < slen) return(CORD_NOT_FOUND);    start_len = slen;    if (start_len > sizeof(unsigned long)) start_len = sizeof(unsigned long);    CORD_set_pos(xpos, x, start);    for (i = 0; i < start_len; i++) {        mask <<= 8;        mask |= 0xff;        s_buf <<= 8;        s_buf |= (unsigned char)s_start[i];        x_buf <<= 8;        x_buf |= (unsigned char)CORD_pos_fetch(xpos);        CORD_next(xpos);    }    for (match_pos = start; ; match_pos++) {    	if ((x_buf & mask) == s_buf) {    	    if (slen == start_len ||    	     	CORD_ncmp(x, match_pos + start_len,    	     	 	  s, start_len, slen - start_len) == 0) {    	        return(match_pos);    	    }    	}	if ( match_pos == xlen - slen ) {	    return(CORD_NOT_FOUND);	}    	x_buf <<= 8;        x_buf |= (unsigned char)CORD_pos_fetch(xpos);        CORD_next(xpos);    }}void CORD_ec_flush_buf(CORD_ec x){    register size_t len = x[0].ec_bufptr - x[0].ec_buf;    char * s;    if (len == 0) return;    s = GC_MALLOC_ATOMIC(len+1);    memcpy(s, x[0].ec_buf, len);    s[len] = '\0';    x[0].ec_cord = CORD_cat_char_star(x[0].ec_cord, s, len);    x[0].ec_bufptr = x[0].ec_buf;}void CORD_ec_append_cord(CORD_ec x, CORD s){    CORD_ec_flush_buf(x);    x[0].ec_cord = CORD_cat(x[0].ec_cord, s);}/*ARGSUSED*/char CORD_nul_func(size_t i, void * client_data){    return((char)(unsigned long)client_data);}CORD CORD_chars(char c, size_t i){    return(CORD_from_fn(CORD_nul_func, (void *)(unsigned long)c, i));}CORD CORD_from_file_eager(FILE * f){    register int c;    CORD_ec ecord;        CORD_ec_init(ecord);    for(;;) {        c = getc(f);        if (c == 0) {          /* Append the right number of NULs	*/          /* Note that any string of NULs is rpresented in 4 words,	*/          /* independent of its length.					*/            register size_t count = 1;                        CORD_ec_flush_buf(ecord);            while ((c = getc(f)) == 0) count++;            ecord[0].ec_cord = CORD_cat(ecord[0].ec_cord, CORD_nul(count));        }        if (c == EOF) break;        CORD_ec_append(ecord, c);    }    (void) fclose(f);    return(CORD_balance(CORD_ec_to_cord(ecord)));}/* The state maintained for a lazily read file consists primarily	*//* of a large direct-mapped cache of previously read values.		*//* We could rely more on stdio buffering.  That would have 2		*//* disadvantages:							*//*  	1) Empirically, not all fseek implementations preserve the	*//*	   buffer whenever they could.					*//*	2) It would fail if 2 different sections of a long cord		*//*	   were being read alternately.					*//* We do use the stdio buffer for read ahead.				*//* To guarantee thread safety in the presence of atomic pointer		*//* writes, cache lines are always replaced, and never modified in	*//* place.								*/# define LOG_CACHE_SZ 14# define CACHE_SZ (1 << LOG_CACHE_SZ)# define LOG_LINE_SZ 9# define LINE_SZ (1 << LOG_LINE_SZ)typedef struct {    size_t tag;    char data[LINE_SZ];    	/* data[i%LINE_SZ] = ith char in file if tag = i/LINE_SZ	*/} cache_line;typedef struct {    FILE * lf_file;    size_t lf_current;	/* Current file pointer value */    cache_line * volatile lf_cache[CACHE_SZ/LINE_SZ];} lf_state;# define MOD_CACHE_SZ(n) ((n) & (CACHE_SZ - 1))# define DIV_CACHE_SZ(n) ((n) >> LOG_CACHE_SZ)# define MOD_LINE_SZ(n) ((n) & (LINE_SZ - 1))# define DIV_LINE_SZ(n) ((n) >> LOG_LINE_SZ)# define LINE_START(n) ((n) & ~(LINE_SZ - 1))typedef struct {    lf_state * state;    size_t file_pos;	/* Position of needed character. */    cache_line * new_cache;} refill_data;/* Executed with allocation lock. */static char refill_cache(client_data)refill_data * client_data;{    register lf_state * state = client_data -> state;    register size_t file_pos = client_data -> file_pos;    FILE *f = state -> lf_file;    size_t line_start = LINE_START(file_pos);    size_t line_no = DIV_LINE_SZ(MOD_CACHE_SZ(file_pos));    cache_line * new_cache = client_data -> new_cache;        if (line_start != state -> lf_current        && fseek(f, line_start, SEEK_SET) != 0) {    	    ABORT("fseek failed");    }    if (fread(new_cache -> data, sizeof(char), LINE_SZ, f)    	<= file_pos - line_start) {    	ABORT("fread failed");    }    new_cache -> tag = DIV_LINE_SZ(file_pos);    /* Store barrier goes here. */    ATOMIC_WRITE(state -> lf_cache[line_no], new_cache);    state -> lf_current = line_start + LINE_SZ;    return(new_cache->data[MOD_LINE_SZ(file_pos)]);}char CORD_lf_func(size_t i, void * client_data){    register lf_state * state = (lf_state *)client_data;    register cache_line * volatile * cl_addr =		&(state -> lf_cache[DIV_LINE_SZ(MOD_CACHE_SZ(i))]);    register cache_line * cl = (cache_line *)ATOMIC_READ(cl_addr);        if (cl == 0 || cl -> tag != DIV_LINE_SZ(i)) {    	/* Cache miss */    	refill_data rd;    	        rd.state = state;        rd.file_pos =  i;        rd.new_cache = GC_NEW_ATOMIC(cache_line);        if (rd.new_cache == 0) OUT_OF_MEMORY;        return((char)(GC_word)        	  GC_call_with_alloc_lock((GC_fn_type) refill_cache, &rd));    }    return(cl -> data[MOD_LINE_SZ(i)]);}    /*ARGSUSED*/void CORD_lf_close_proc(void * obj, void * client_data)  {    if (fclose(((lf_state *)obj) -> lf_file) != 0) {    	ABORT("CORD_lf_close_proc: fclose failed");    }}			CORD CORD_from_file_lazy_inner(FILE * f, size_t len){    register lf_state * state = GC_NEW(lf_state);    register int i;        if (state == 0) OUT_OF_MEMORY;    if (len != 0) {	/* Dummy read to force buffer allocation.  	*/	/* This greatly increases the probability	*/	/* of avoiding deadlock if buffer allocation	*/	/* is redirected to GC_malloc and the		*/	/* world is multithreaded.			*/	char buf[1];	(void) fread(buf, 1, 1, f); 	rewind(f);    }    state -> lf_file = f;    for (i = 0; i < CACHE_SZ/LINE_SZ; i++) {        state -> lf_cache[i] = 0;    }    state -> lf_current = 0;    GC_REGISTER_FINALIZER(state, CORD_lf_close_proc, 0, 0, 0);    return(CORD_from_fn(CORD_lf_func, state, len));}CORD CORD_from_file_lazy(FILE * f){    register long len;        if (fseek(f, 0l, SEEK_END) != 0) {        ABORT("Bad fd argument - fseek failed");    }    if ((len = ftell(f)) < 0) {        ABORT("Bad fd argument - ftell failed");    }    rewind(f);    return(CORD_from_file_lazy_inner(f, (size_t)len));}# define LAZY_THRESHOLD (128*1024 + 1)CORD CORD_from_file(FILE * f){    register long len;        if (fseek(f, 0l, SEEK_END) != 0) {        ABORT("Bad fd argument - fseek failed");    }    if ((len = ftell(f)) < 0) {        ABORT("Bad fd argument - ftell failed");    }    rewind(f);    if (len < LAZY_THRESHOLD) {        return(CORD_from_file_eager(f));    } else {        return(CORD_from_file_lazy_inner(f, (size_t)len));    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产剧情一区二区| 亚洲精品va在线观看| 国产综合成人久久大片91| 678五月天丁香亚洲综合网| 亚洲一区二区三区在线看| 91视频在线看| 亚洲午夜av在线| 正在播放亚洲一区| 狠狠色综合播放一区二区| 久久综合色鬼综合色| 国产精品白丝av| 亚洲欧美在线另类| 欧美午夜精品免费| 久久se精品一区精品二区| 欧美国产日本韩| 色婷婷激情综合| 丝袜a∨在线一区二区三区不卡| 日韩一二三四区| 国产成人一区二区精品非洲| 亚洲天堂福利av| 9191成人精品久久| 成人一区在线看| 亚洲成a人v欧美综合天堂下载 | 成人性生交大片免费| 日韩一区在线免费观看| 欧美日韩中文字幕一区| 久久国产免费看| 亚洲码国产岛国毛片在线| 日韩欧美中文一区二区| 成人小视频免费在线观看| 亚洲在线视频网站| 久久色视频免费观看| 欧美三级在线看| 国产成人亚洲精品青草天美| 亚洲.国产.中文慕字在线| 久久久久久久久久久久电影| 欧美日韩欧美一区二区| 岛国一区二区在线观看| 调教+趴+乳夹+国产+精品| 国产精品久久久久影视| 5月丁香婷婷综合| 99国产精品一区| 久久成人精品无人区| 亚洲一区二区三区中文字幕 | 精品女同一区二区| 在线观看欧美黄色| 国产福利一区二区三区视频在线| 亚洲成人免费av| 自拍偷自拍亚洲精品播放| 久久影院视频免费| 欧美丰满一区二区免费视频| 99久久er热在这里只有精品15| 另类小说一区二区三区| 天天综合色天天综合色h| 亚洲欧洲无码一区二区三区| 精品国产亚洲在线| 制服丝袜亚洲播放| 在线视频欧美精品| 成人免费高清在线| 国产精品一区二区果冻传媒| 蜜臀av一区二区| 天堂久久久久va久久久久| 亚洲精品视频一区二区| 亚洲欧洲美洲综合色网| 国产三级久久久| 国产亚洲一二三区| 精品久久久久99| 日韩精品一区二区三区swag| 欧美一区二区网站| 在线播放中文字幕一区| 欧美一区二区在线不卡| 欧美日本国产一区| 欧美日韩精品三区| 欧美系列亚洲系列| 欧美福利一区二区| 欧美一区二区三区免费大片| 91麻豆精品91久久久久久清纯| 欧美日韩视频在线第一区| 欧美乱妇15p| 欧美高清性hdvideosex| 日韩一级欧美一级| 精品久久人人做人人爱| 久久久久久久久久久久久女国产乱| 26uuu亚洲综合色| 久久精品亚洲国产奇米99| 久久影音资源网| 国产精品灌醉下药二区| 亚洲欧洲三级电影| 亚洲一区二区三区四区的| 亚洲影院理伦片| 奇米在线7777在线精品| 裸体在线国模精品偷拍| 国产曰批免费观看久久久| 国产黄色精品网站| 97精品久久久久中文字幕 | 日日夜夜免费精品| 美洲天堂一区二卡三卡四卡视频| 久久激情五月婷婷| 国产成人99久久亚洲综合精品| 99久久精品一区| 欧美视频在线播放| 欧美tickling网站挠脚心| 日本一区二区三区久久久久久久久不| 日韩码欧中文字| 婷婷丁香久久五月婷婷| 国产精品一区二区在线看| 91麻豆.com| 91精品国产综合久久精品图片 | 日本少妇一区二区| 国产精品自拍在线| 色狠狠色噜噜噜综合网| 日韩午夜av一区| 中文一区一区三区高中清不卡| 亚洲精品中文字幕乱码三区| 日韩av一区二区三区| 国产精品69毛片高清亚洲| 色哟哟国产精品免费观看| 日韩一区二区三区视频在线| 国产精品久久久久久久久图文区 | 国产视频在线观看一区二区三区| 亚洲乱码中文字幕综合| 免费一级欧美片在线观看| 成人一道本在线| 91麻豆精品国产91久久久久 | 一区二区三区欧美| 久久av资源站| 在线观看91视频| 国产人伦精品一区二区| 亚瑟在线精品视频| 91片在线免费观看| 日韩一区二区在线播放| 一区二区免费在线| 成人综合在线网站| 日韩一区二区高清| 亚洲午夜成aⅴ人片| 不卡的av在线播放| 精品国内片67194| 亚洲国产欧美一区二区三区丁香婷| 国产一区二区免费视频| 欧美日韩精品免费观看视频| 国产精品剧情在线亚洲| 国产在线播放一区三区四| 91超碰这里只有精品国产| 亚洲黄色性网站| av在线一区二区| 国产午夜一区二区三区| 蜜桃久久久久久久| 欧美美女bb生活片| 一区二区三区精品在线| 色综合久久99| 亚洲色图色小说| 成人午夜伦理影院| 久久久精品国产免费观看同学| 麻豆免费精品视频| 欧美一级欧美三级在线观看| 亚洲国产欧美在线人成| 欧美中文一区二区三区| 18欧美乱大交hd1984| www.成人网.com| 欧美激情综合五月色丁香| 国产成人高清视频| 久久久精品免费免费| 国产精品一级二级三级| 久久久精品黄色| 国产成人8x视频一区二区| 国产欧美一区二区精品性| 国产精品自拍毛片| 国产色综合久久| 国产超碰在线一区| 中文一区在线播放| a4yy欧美一区二区三区| 亚洲同性同志一二三专区| 成人午夜视频在线| 最新热久久免费视频| 91在线播放网址| 一区二区三区欧美视频| 欧美日韩高清在线播放| 日韩中文字幕区一区有砖一区| 在线播放欧美女士性生活| 日韩二区在线观看| 精品国产乱码久久久久久夜甘婷婷| 卡一卡二国产精品| 国产欧美日韩在线看| 成年人国产精品| 亚洲成人手机在线| 欧美一级久久久久久久大片| 国产真实乱对白精彩久久| 国产亲近乱来精品视频| av影院午夜一区| 亚洲1区2区3区4区| 久久免费午夜影院| av一区二区不卡| 亚洲1区2区3区4区| 久久亚洲精华国产精华液 | 成人视屏免费看| 亚洲精品菠萝久久久久久久| 91麻豆精品国产91久久久 | 亚洲精品欧美二区三区中文字幕| 欧美亚洲动漫另类| 九九精品一区二区|