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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? agrep.c

?? harvest是一個下載html網頁得機器人
?? C
字號:
/* $Id: agrep.c,v 1.13 2002/08/02 19:26:55 adam Exp $   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002   Index Data ApsThis file is part of the Zebra server.Zebra is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the FreeSoftware Foundation; either version 2, or (at your option) any laterversion.Zebra is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licensefor more details.You should have received a copy of the GNU General Public Licensealong with Zebra; see the file LICENSE.zebra.  If not, write to theFree Software Foundation, 59 Temple Place - Suite 330, Boston, MA02111-1307, USA.*/#include <stdio.h>#include <assert.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#ifdef WIN32#include <io.h>#else#include <unistd.h>#endif#include <zebrautl.h>#include <dfa.h>#include "imalloc.h"#ifndef O_BINARY#define O_BINARY 0#endifstatic char *prog;void error (const char *format, ...){    va_list argptr;    va_start (argptr, format);    fprintf (stderr, "%s error: ", prog);    (void) vfprintf (stderr, format, argptr);    putc ('\n', stderr);    exit (1);}static int show_lines = 0;int agrep_options (argc, argv)int argc;char **argv;{    while (--argc > 0)        if (**++argv == '-')            while (*++*argv)            {                switch (**argv)                {                case 'V':                    fprintf (stderr, "%s: %s %s\n", prog, __DATE__, __TIME__);                    continue;                case 'v':                    dfa_verbose = 1;                    continue;                case 'n':                    show_lines = 1;                    continue;                case 'd':                    switch (*++*argv)                    {                    case 's':                        debug_dfa_tran = 1;                        break;                    case 't':                        debug_dfa_trav = 1;                        break;                    case 'f':                        debug_dfa_followpos = 1;                        break;                    default:                        --*argv;                        debug_dfa_tran = 1;                        debug_dfa_followpos = 1;                        debug_dfa_trav = 1;                    }                    continue;                default:                    fprintf (stderr, "%s: unknown option `-%s'\n", prog, *argv);                    return 1;                }                break;            }    return 0;}#define INF_BUF_SIZE  32768Ustatic char *inf_buf;static char *inf_ptr, *inf_flsh;static int inf_eof, line_no;static int inf_flush (fd)int fd;{    char *p;    unsigned b, r;    r = (unsigned) (inf_buf+INF_BUF_SIZE - inf_ptr);  /* no of `wrap' bytes */    if (r)        memcpy (inf_buf, inf_ptr, r);    inf_ptr = p = inf_buf + r;    b = INF_BUF_SIZE - r;    do        if ((r = read (fd, p, b)) == (unsigned) -1)            return -1;        else if (r)            p +=  r;        else        {            *p++ = '\n';            inf_eof = 1;            break;        }    while ((b -= r) > 0);    while (p != inf_buf && *--p != '\n')        ;    while (p != inf_buf && *--p != '\n')        ;    inf_flsh = p+1;    return 0;}static char *prline (p)char *p;{    char *p0;    --p;    while (p != inf_buf && p[-1] != '\n')        --p;    p0 = p;    while (*p++ != '\n')        ;    p[-1] = '\0';    if (show_lines)        printf ("%5d:\t%s\n", line_no, p0);    else        puts (p0);    p[-1] = '\n';    return p;}static int go (fd, dfaar)int fd;struct DFA_state **dfaar;{    struct DFA_state *s = dfaar[0];    struct DFA_tran *t;    char *p;    int i;    unsigned char c;    int start_line = 1;    while (1)    {        for (c = *inf_ptr++, t=s->trans, i=s->tran_no; --i >= 0; t++)            if (c >= t->ch[0] && c <= t->ch[1])            {                p = inf_ptr;                do                {                    if ((s = dfaar[t->to])->rule_no &&                        (start_line || s->rule_nno))                    {                        inf_ptr = prline (inf_ptr);                        c = '\n';                        break;                    }                    for (t=s->trans, i=s->tran_no; --i >= 0; t++)                        if ((unsigned) *p >= t->ch[0]                            && (unsigned) *p <= t->ch[1])                            break;                    p++;                } while (i >= 0);                s = dfaar[0];                break;            }        if (c == '\n')        {            start_line = 1;            ++line_no;            if (inf_ptr == inf_flsh)            {                if (inf_eof)                    break;                ++line_no;                if (inf_flush (fd))                {                    fprintf (stderr, "%s: read error\n", prog);                    return -1;                }            }        }        else            start_line = 0;    }    return 0;}int agrep (dfas, fd)struct DFA_state **dfas;int fd;{    inf_buf = imalloc (sizeof(char)*INF_BUF_SIZE);    inf_eof = 0;    inf_ptr = inf_buf+INF_BUF_SIZE;    inf_flush (fd);    line_no = 1;    go (fd, dfas);    ifree (inf_buf);    return 0;}int main (argc, argv)int argc;char **argv;{    const char *pattern = NULL;    char outbuf[BUFSIZ];    int fd, i, no = 0;    struct DFA *dfa = dfa_init();    prog = *argv;    if (argc < 2)    {        fprintf (stderr, "usage: agrep [options] pattern file..\n");        fprintf (stderr, " -v   dfa verbose\n");        fprintf (stderr, " -n   show lines\n");        fprintf (stderr, " -d   debug\n");        fprintf (stderr, " -V   show version\n");        exit (1);    }    setbuf (stdout, outbuf);    i = agrep_options (argc, argv);    if (i)        return i;    while (--argc > 0)        if (**++argv != '-' && **argv)        {            if (!pattern)            {                pattern = *argv;                i = dfa_parse (dfa, &pattern);                if (i || *pattern)                {                    fprintf (stderr, "%s: illegal pattern\n", prog);                    return 1;                }                dfa_mkstate (dfa);            }            else            {                ++no;                fd = open (*argv, O_RDONLY | O_BINARY);                if (fd == -1)                {                    fprintf (stderr, "%s: couldn't open `%s'\n", prog, *argv);                    return 1;                }                i = agrep (dfa->states, fd);                close (fd);                if (i)                    return i;            }        }    if (!no)    {        fprintf (stderr, "usage:\n "                         " %s [-d] [-v] [-n] [-f] pattern file ..\n", prog);        return 2;    }    fflush(stdout);    dfa_delete (&dfa);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级一区二区| 欧美一卡二卡在线观看| 欧美日韩在线播| 精品第一国产综合精品aⅴ| 中文字幕综合网| 精品一区二区三区欧美| 91久久人澡人人添人人爽欧美| 91精品国产麻豆国产自产在线| 国产精品成人免费在线| 久99久精品视频免费观看| 在线观看免费亚洲| 成人欧美一区二区三区白人| 黄一区二区三区| 欧美一区三区二区| 一区二区三区日韩精品| 成人av网站在线| 国产亚洲一区字幕| 国产原创一区二区| xvideos.蜜桃一区二区| 免费成人在线观看视频| 91精品国产综合久久香蕉麻豆| 一区二区三区日韩| 91蝌蚪国产九色| 国产精品国产精品国产专区不片| 国产一区亚洲一区| 日韩午夜在线影院| 丝瓜av网站精品一区二区| 欧美丝袜丝交足nylons图片| 国产精品久久久久影院老司| 福利一区福利二区| 国产色91在线| 丰满亚洲少妇av| 欧美激情综合五月色丁香| 不卡的av电影| 亚洲国产精品精华液2区45| 国产精品中文字幕欧美| 久久综合九色综合欧美98| 国内精品第一页| 欧美精品一区二区三区蜜桃视频| 老色鬼精品视频在线观看播放| 日韩一区二区三区av| 美女任你摸久久 | 91视频www| 日韩理论电影院| 91在线免费看| 亚洲激情五月婷婷| 欧美美女bb生活片| 奇米四色…亚洲| 日韩精品一区二区三区中文不卡| 精品一区中文字幕| 欧美高清在线精品一区| 91传媒视频在线播放| 亚洲国产精品欧美一二99| 正在播放亚洲一区| 国产美女精品人人做人人爽 | 中文字幕在线不卡| 99九九99九九九视频精品| 中文字幕亚洲一区二区av在线 | 成人在线一区二区三区| 中文字幕+乱码+中文字幕一区| caoporn国产精品| 亚洲自拍与偷拍| 日韩限制级电影在线观看| 国产精品一区二区在线看| 国产精品狼人久久影院观看方式| 欧美私模裸体表演在线观看| 精品一二线国产| 一区二区三区中文字幕在线观看| 欧美一级淫片007| 成人黄色软件下载| 日本中文一区二区三区| 欧美经典一区二区| 精品婷婷伊人一区三区三| 国内外成人在线视频| 一区二区三区四区乱视频| 欧美成人精品3d动漫h| caoporm超碰国产精品| 天天av天天翘天天综合网 | 久久99久久99| 亚洲天天做日日做天天谢日日欢| 91麻豆精品国产91久久久更新时间| 极品少妇一区二区| 亚洲一区欧美一区| 亚洲国产高清不卡| 欧美一三区三区四区免费在线看 | 国产一区二区精品在线观看| 日日摸夜夜添夜夜添国产精品| 色88888久久久久久影院按摩| 久久精品国产精品亚洲精品| 亚洲欧洲美洲综合色网| 欧美va亚洲va| 国产欧美日韩精品a在线观看| 欧美中文字幕一二三区视频| 国产激情一区二区三区桃花岛亚洲| 亚洲aaa精品| 国产精品久久久久一区二区三区| 日韩欧美国产一区二区在线播放| 欧美色综合网站| 色综合久久久久久久久| 国产91精品一区二区麻豆网站| 日韩黄色免费网站| 亚洲一区二区三区三| 最新国产成人在线观看| 国产午夜亚洲精品羞羞网站| 欧美男人的天堂一二区| 色婷婷综合久色| 成人av电影在线网| 高清beeg欧美| 国产91综合网| 国产精品456露脸| 国产自产v一区二区三区c| 蜜桃视频第一区免费观看| 日韩高清不卡在线| 日韩福利电影在线| 日日嗨av一区二区三区四区| 亚洲成人你懂的| 亚洲一区二区三区三| 亚洲一区电影777| 一区二区欧美精品| 亚洲与欧洲av电影| 亚洲一区二区三区四区在线| 一区二区三区四区在线免费观看 | 日韩欧美www| 欧美大片在线观看一区| 日韩免费在线观看| 久久亚区不卡日本| 国产精品色呦呦| 亚洲天堂网中文字| 亚洲精品日产精品乱码不卡| 亚洲免费观看高清完整版在线观看 | 欧美日韩小视频| 91精品国产91热久久久做人人| 欧美一区二区精美| 久久亚洲精品小早川怜子| 久久久美女毛片| 国产精品久久久久影院色老大| 亚洲日本va午夜在线影院| 亚洲一区二区三区在线看| 午夜精品久久久久久久| 喷水一区二区三区| 国产精品一区二区久久精品爱涩| av电影在线不卡| 欧美精品少妇一区二区三区| 精品国产污污免费网站入口 | 国内精品第一页| 99riav一区二区三区| 色哟哟日韩精品| 欧美日韩精品欧美日韩精品一| 日韩一区二区三区观看| 国产日韩欧美麻豆| 亚洲自拍偷拍欧美| 久久97超碰国产精品超碰| 成人av午夜电影| 欧美高清dvd| 国产午夜精品久久久久久久 | 一区免费观看视频| 天堂va蜜桃一区二区三区漫画版| 精品夜夜嗨av一区二区三区| 色婷婷综合久久| 欧美成人猛片aaaaaaa| 国产精品无码永久免费888| 亚洲午夜精品在线| 成人免费视频app| 日韩亚洲欧美一区| 国产毛片精品一区| 在线亚洲免费视频| 国产精品人妖ts系列视频| 午夜电影久久久| kk眼镜猥琐国模调教系列一区二区| 欧美蜜桃一区二区三区| 中文字幕精品在线不卡| 日日夜夜免费精品视频| 91丨porny丨蝌蚪视频| 久久综合久久久久88| 日韩av中文在线观看| 91年精品国产| 国产精品美女久久久久久久久| 蜜臀精品久久久久久蜜臀 | 国产精品一线二线三线精华| 欧美天堂一区二区三区| 亚洲欧洲99久久| 国产成人日日夜夜| 久久亚洲综合色一区二区三区| 图片区小说区国产精品视频| 波多野洁衣一区| 中文字幕欧美日本乱码一线二线| 日本aⅴ亚洲精品中文乱码| 在线免费观看日本欧美| 最新欧美精品一区二区三区| 国产成人8x视频一区二区 | 国产精品成人在线观看| 粉嫩蜜臀av国产精品网站| 欧美成人精精品一区二区频| 亚洲国产视频一区| 在线精品视频一区二区三四| 亚洲欧美一区二区三区极速播放| 福利一区在线观看| 中日韩免费视频中文字幕| 成人av网站在线观看| 欧美经典一区二区三区|