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

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

?? edmain.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
   /*******************************************************/   /*      "C" Language Integrated Production System      */   /*                                                     */   /*              CLIPS Version 6.24  06/02/06           */   /*                                                     */   /*                                                     */   /*******************************************************/   /*************************************************************//* Purpose:                                                  *//*                                                           *//* Principal Programmer(s):                                  *//*                                                           *//* Contributing Programmer(s):                               *//*                                                           *//* Revision History:                                         *//*                                                           *//*      6.24: Corrected code generating compilation warnings *//*            with run-time programs.                        *//*                                                           *//*************************************************************//* * This program is in public domain; written by Dave G. Conroy. * This file contains the main driving routine, and some keyboard processing * code, for the MicroEMACS screen editor. * * REVISION HISTORY: * * 1.0  Steve Wilhite, 30-Nov-85 *      - Removed the old LK201 and VT100 logic. Added code to support the *        DEC Rainbow keyboard (which is a LK201 layout) using the the Level *        1 Console In ROM INT. *        See "rainbow.h" for the function key definitions. * * 2.0  George Jones, 12-Dec-85 *      - Ported to Amiga. * * 2.1  Chris Culbert, 25-Jul-86 *      - Ported to HP9000 computers and modified commands to look more *        like the Zmacs editor used on the Symbolics. * * 2.2  Bebe Ly, 09-Jan-87 *      - Added functions for global search and replace, query search *        and replace, and parenthesis matching. * * * 3.0  Chris Culbert, August 1987 *      - Integrated with CLIPS tool. Added functions to do rule *        compiling and editor entry and exit clean up. *        Massive rearranging of code and general clean up. */#include "setup.h"#if     EMACS_EDITOR#if     ! RUN_TIME#define _EDMAIN_SOURCE_#include "ed.h"#include "sysdep.h"#include "extnfunc.h"#if     VAX_VMS#include        <ssdef.h>#define GOOD    (SS$_NORMAL)#endif#ifndef GOOD#define GOOD    0#endif#define EXIT	-999globle int     currow;                  /* Working cursor row           */globle int     curcol;                  /* Working cursor column        */globle int     fillcol;                 /* Current fill column          */globle int     thisflag;                /* Flags, this command          */globle int     lastflag;                /* Flags, last command          */globle int     curgoal;                 /* Goal column                  */globle BUFFER  *curbp;                  /* Current buffer               */globle WINDOW  *curwp;                  /* Current window               */globle BUFFER  *bheadp = NULL;          /* BUFFER listhead              */globle WINDOW  *wheadp;                 /* WINDOW listhead              */globle BUFFER  *blistp;                 /* Buffer list BUFFER           */globle short   kbdm[NKBDM] = {CTLX|')'};/* Macro                        */globle short   *kbdmip;                 /* Input  for above             */globle short   *kbdmop;                 /* Output for above             */globle char    pat[NPAT];               /* Pattern                      */globle char    lastbufn[NBUFN];         /* Last buffer name             */globle BUFFER *CompileBufferp;          /* CLIPS Compile Output Buffer  */typedef struct  {        short   k_code;                 /* Key code                     */        int     (*k_fp)(void *,int,int);       /* Routine to handle it         */}       KEYTAB;/* * Command table. * This table  is *roughly* in ASCII order, left to right across the * characters of the command. This expains the funny location of the * control-X commands. */globle KEYTAB keytab[] = {        { COTL|'@',setmark },        { COTL|'A',gotobol },        { COTL|'B',backchar },        { COTL|'C',spawncli }, /* Run CLI in subjob.   */        { COTL|'D',forwdel },        { COTL|'E',gotoeol },        { COTL|'F',forwchar },        { COTL|'G',ctrlg },        { COTL|'H',backdel },        { COTL|'I',tab },        { COTL|'J',indent },        { COTL|'K',kill_fwd },        { COTL|'L',EditorRefresh },        { COTL|'M',newline },        { COTL|'N',forwline },        { COTL|'O',openline },        { COTL|'P',backline },        { COTL|'Q',quote }, /* Often unreachable    */        { COTL|'R',backsearch },        { COTL|'S',forwsearch }, /* Often unreachable    */        { COTL|'T',twiddle },        { COTL|'V',forwpage },        { COTL|'W',killregion },        { COTL|'Y',yank },        { COTL|'Z',quickexit }, /* quick save and exit  */        { CTLX|COTL|'B',listbuffers },        { CTLX|COTL|'C',edquit }, /* Hard quit.           */        { CTLX|COTL|'F',filevisit },        { CTLX|COTL|'L',lowerregion },        { CTLX|COTL|'O',deblank },        { CTLX|COTL|'N',mvdnwind },        { CTLX|COTL|'P',mvupwind },        { CTLX|COTL|'R',filename },        { CTLX|COTL|'S',filesave }, /* Often unreachable    */        { CTLX|COTL|'T',compile_region },        { CTLX|COTL|'U',upperregion },        { CTLX|COTL|'V',fileread },        { CTLX|COTL|'W',filewrite },        { CTLX|COTL|'X',swapmark },        { CTLX|COTL|'Z',shrinkwind },        { CTLX|'!',spawn }, /* Run 1 command.       */        { CTLX|'=',showcpos },        { CTLX|':',gotoline },        { CTLX|'(',ctlxlp },        { CTLX|')',ctlxrp },        { CTLX|'1',onlywind },        { CTLX|'2',splitwind },        { CTLX|'B',usebuffer },        { CTLX|'E',ctlxe },        { CTLX|'F',setfillcol },        { CTLX|'K',killbuffer },        { CTLX|'M',smatchb },        { CTLX|'N',nextwind },        { CTLX|'P',prevwind },        { CTLX|'Q',temp_quit },        { CTLX|'R',bkwrdrpl },        { CTLX|'S',frwsr },        { CTLX|'Z',enlargewind },        { META|COTL|'H',delbword },        { META|'!',reposition },        { META|'.',setmark },        { META|'>',gotoeob },        { META|'<',gotobob },        { META|'B',backword },        { META|'C',capword },        { META|'D',delfword },        { META|'F',forwword },        { META|'J',forwsearch }, /* To replace C-S */        { META|'L',lowerword },        { META|'R',bkwrdcr },        { META|'S',querysr },        { META|'T',compile_file },        { META|'U',upperword },        { META|'V',backpage },        { META|'W',copyregion },        { META|'Z',filesave }, /* To replace C-S */        { META|DEL_KEY,delbword },        { DEL_KEY,backdel }};#define NKEYTAB (sizeof(keytab)/sizeof(keytab[0]))static void PerformEditCommand(void *);static void PerformEditCommand(  void *theEnv){        register int    c;        register int    f;        register int    n;        register int    mflag;        register int    rtn_flag;        char            bname[NBUFN];        int num_a;        char *fileName = NULL;        DATA_OBJECT arg_ptr;   /*====================*/   /* Get the file name. */   /*====================*/   if ((num_a = EnvArgCountCheck(theEnv,"edit",NO_MORE_THAN,1)) == -1) return;   if (num_a == 1)     {      if (EnvArgTypeCheck(theEnv,"edit",1,SYMBOL_OR_STRING,&arg_ptr) == FALSE) return;      fileName = DOToString(arg_ptr);     }   if(bheadp == NULL) {	/**********************************************/	/* Initial entry, set up buffers and pointers */	/**********************************************/        genstrcpy(bname, "main");                  /* Work out the name of */        if (num_a > 0)                     /* the default buffer.  */                makename(bname,fileName);        edinit(theEnv,bname);                          /* Buffers, windows.    */        vtinit(theEnv);                               /* Displays.            */        if (num_a > 0) {                update();                       /* You have to update   */                readin(theEnv,fileName);             /* in case "[New file]" */                }	init_cmp_router(theEnv);			/* Prepare the compile  */        EnvDeactivateRouter(theEnv,"cmp_router");		/* router.              */        }   else {	/**********************************************************/	/* Return from temporary exit, reset necessary stuff only */	/**********************************************************/	(*term.t_open)();        if (num_a > 0) {           filevisit_guts(theEnv,fileName);           }        }   sgarbf = TRUE;                          /* Force screen update  */   lastbufn[0] = '\0';                     /* Make sure last name  */                                           /* is cleared out       */   lastflag = 0;                           /* Fake last flags.     */loop:        update();                               /* Fix up the screen    */        c = getkey();        if (mpresf != FALSE) {                mlerase();                update();                if (c == ' ')                   /* ITS EMACS does this  */                        goto loop;        }        f = FALSE;        n = 1;        if (c == (COTL|'U')) {                  /* ^U, start argument   */                f = TRUE;                n = 4;                          /* with argument of 4 */                mflag = 0;                      /* that can be discarded. */                mlwrite("Arg: 4");                while ((((c=getkey()) >='0') && (c<='9'))                       || (c==(COTL|'U')) || (c=='-')){                        if (c == (COTL|'U'))                                n = n*4;                        /*                         * If dash, and start of argument string, set arg.                         * to -1.  Otherwise, insert it.                         */                        else if (c == '-') {                                if (mflag)                                        break;                                n = 0;                                mflag = -1;                        }                        /*                         * If first digit entered, replace previous argument                         * with digit and set sign.  Otherwise, append to arg.                         */                        else {                                if (!mflag) {                                        n = 0;                                        mflag = 1;                                }                                n = 10*n + c - '0';                        }                        mlwrite("Arg: %d", (mflag >=0) ? n : (n ? -n : -1));                }                /*                 * Make arguments preceded by a minus sign negative and change                 * the special argument "^U -" to an effective "^U -1".                 */                if (mflag == -1) {                        if (n == 0)                                n++;                        n = -n;                }        }        if (c == (COTL|'X'))                    /* ^X is a prefix       */                c = CTLX | getctl();        if (kbdmip != NULL) {                   /* Save macro strokes.  */                if (c!=(CTLX|')') && kbdmip>&kbdm[NKBDM-6]) {                        ctrlg(theEnv,FALSE, 0);                        goto loop;                }                if (f != FALSE) {                        *kbdmip++ = (COTL|'U');                        *kbdmip++ = n;                }                *kbdmip++ = c;        }        rtn_flag = execute(theEnv,c, f, n);                /* Do it.               */        if(rtn_flag == EXIT)           return;	else           goto loop;}/* * Initialize all of the buffers and windows. The buffer name is passed down * as an argument, because the main routine may have been told to read in a * file by default, and we want the buffer name to be right. */globle void edinit(  void *theEnv,  char bname[]){        register BUFFER *bp;        register WINDOW *wp;        bp     = bfind(theEnv,bname, TRUE, 0);              /* First buffer        */        blistp = bfind(theEnv,"[List]", TRUE, BFTEMP);      /* Buffer list buffer  */        wp     = (WINDOW *) genalloc(theEnv,(unsigned) sizeof(WINDOW));  /* First window        */        curbp  = bp;                            /* Make this current    */        wheadp = wp;        curwp  = wp;        wp->w_wndp  = NULL;                     /* Initialize window    */        wp->w_bufp  = bp;        bp->b_nwnd  = 1;                        /* Displayed.           */        wp->w_linep = bp->b_linep;        wp->w_dotp  = bp->b_linep;        wp->w_doto  = 0;        wp->w_markp = NULL;        wp->w_marko = 0;        wp->w_toprow = 0;        wp->w_ntrows = (char) term.t_nrow-1;    /* "-1" for mode line.  */        wp->w_force = 0;        wp->w_flag  = WFMODE|WFHARD;            /* Full.                */        /* Secret Buffer for CLIPS Compile output */        CompileBufferp = bfind(theEnv,"[Compilations]",TRUE,BFTEMP);}/* * This is the general command execution routine. It handles the fake binding * of all the keys to "self-insert". It also clears out the "thisflag" word, * and arranges to move it to the "lastflag", so that the next command can * look at it. Return the status of command. */globle int execute(  void *theEnv,  int c,  int f,  int n){        register KEYTAB *ktp;        register int    status;        ktp = &keytab[0];                       /* Look in key table.   */        while (ktp < &keytab[NKEYTAB]) {                if (ktp->k_code == c) {                        thisflag = 0;                        status   = (*ktp->k_fp)(theEnv,f, n);                        lastflag = thisflag;                        return (status);                }                ++ktp;        }        /*         * If a space was typed, fill column is defined, the argument is non-         * negative, and we are now past fill column, perform word wrap.         */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产精华| 色综合中文综合网| 久久久.com| 国产精品久久久久影院| 亚洲一区二区av电影| 捆绑调教美女网站视频一区| 风间由美一区二区av101| 91丝袜美女网| 日韩视频免费观看高清完整版| 久久久美女毛片| 亚洲精品美腿丝袜| 老司机精品视频导航| av中文字幕在线不卡| 91精品国产综合久久久蜜臀图片| 久久综合色婷婷| 一级女性全黄久久生活片免费| 日本成人中文字幕| proumb性欧美在线观看| 欧美一区二区三区公司| 亚洲国产精品成人久久综合一区| 亚洲成人精品在线观看| 成人免费看的视频| 日韩三级中文字幕| 亚洲精品一卡二卡| 韩国v欧美v日本v亚洲v| 欧美综合久久久| 国产日本欧美一区二区| 天天综合网天天综合色| www.日韩在线| 久久综合久久综合九色| 午夜精品福利一区二区三区av| 成人午夜视频免费看| 91麻豆精品国产综合久久久久久| 国产精品不卡一区二区三区| 久久精品国产一区二区三| 91国内精品野花午夜精品| 国产欧美日韩久久| 久久黄色级2电影| 欧美午夜精品理论片a级按摩| 国产精品美女久久久久久2018| 日韩av不卡在线观看| 欧美视频一区在线| 亚洲欧美日韩中文播放| 国产剧情在线观看一区二区| 欧美一区二区视频在线观看2022| 一区二区欧美视频| a美女胸又www黄视频久久| 国产三级三级三级精品8ⅰ区| 日韩av一区二区在线影视| 日本精品裸体写真集在线观看| 国产精品免费视频一区| 国产在线国偷精品产拍免费yy| 在线不卡中文字幕播放| 一区二区激情小说| 99re8在线精品视频免费播放| 久久欧美一区二区| 麻豆成人av在线| 宅男噜噜噜66一区二区66| 亚洲3atv精品一区二区三区| 91成人在线精品| 亚洲欧美另类小说| 97精品国产露脸对白| 国产精品嫩草久久久久| www.日韩在线| 自拍av一区二区三区| 91蜜桃免费观看视频| 国产精品国产三级国产普通话三级 | 懂色av一区二区在线播放| 久久影院午夜片一区| 久久精品国产一区二区| 欧美大片国产精品| 毛片基地黄久久久久久天堂| 日韩一区二区视频| 热久久国产精品| 欧美成人vps| 狠狠网亚洲精品| 精品久久久久久久久久久久包黑料| 久久国产尿小便嘘嘘| 精品国产91乱码一区二区三区| 久久99精品国产麻豆婷婷洗澡| 欧美tickle裸体挠脚心vk| 国内精品免费**视频| 国产欧美在线观看一区| av综合在线播放| 亚洲精品大片www| 欧美三级在线播放| 日本亚洲电影天堂| 精品国产一区二区三区av性色| 久久精品国产亚洲5555| 国产日韩在线不卡| 99精品久久免费看蜜臀剧情介绍| 18涩涩午夜精品.www| 91福利视频久久久久| 日日夜夜精品视频免费| 欧美一级在线免费| 国产精品一区不卡| 亚洲色欲色欲www在线观看| 日本高清不卡视频| 青青草伊人久久| 国产丝袜欧美中文另类| 91在线观看一区二区| 亚洲成人黄色影院| 日韩一级精品视频在线观看| 国产美女在线观看一区| 亚洲欧洲国产日韩| 欧美日韩成人在线一区| 精东粉嫩av免费一区二区三区| 国产三级精品视频| 色诱视频网站一区| 日本成人在线不卡视频| 欧美国产视频在线| 欧美视频在线一区| 国产一区二区三区四区五区美女| 国产精品成人一区二区艾草| 欧美顶级少妇做爰| 国产福利一区二区| 亚洲制服欧美中文字幕中文字幕| 精品少妇一区二区| 色婷婷精品久久二区二区蜜臀av| 麻豆91免费看| 成人欧美一区二区三区在线播放| 欧美精品久久久久久久多人混战 | 国产日韩av一区| 91黄色免费版| 国产一区二区三区观看| 亚洲精选在线视频| 国产午夜精品一区二区| 欧美三级电影一区| 粉嫩一区二区三区性色av| 五月天中文字幕一区二区| 欧美激情一区二区三区全黄| 欧美日韩精品福利| 成人激情综合网站| 蜜臀av一区二区三区| 亚洲色图丝袜美腿| 26uuu精品一区二区| 欧美亚洲国产怡红院影院| 国产成人亚洲综合a∨婷婷图片| 香蕉久久夜色精品国产使用方法| 国产欧美1区2区3区| 欧美一区二区精品在线| 在线看国产一区| 国产福利一区二区三区视频| 日韩国产精品91| 亚洲免费av高清| 久久精品欧美一区二区三区不卡| 欧美日韩国产精品自在自线| 91免费在线看| 国产.精品.日韩.另类.中文.在线.播放| 婷婷国产在线综合| 亚洲制服丝袜av| 亚洲欧美自拍偷拍| 日本一区二区三区国色天香 | 久久精品国产久精国产| 亚洲影视在线播放| 中文字幕在线观看不卡视频| 久久夜色精品一区| 欧美一级黄色片| 欧美日韩国产综合久久| 色呦呦一区二区三区| 成人一区二区三区中文字幕| 国模一区二区三区白浆| 美女视频免费一区| 日本不卡不码高清免费观看| 亚洲电影欧美电影有声小说| 亚洲视频你懂的| 国产精品高潮久久久久无| 日本一区二区不卡视频| 国产性天天综合网| 国产亚洲综合av| 久久久久久久久岛国免费| 欧美哺乳videos| 欧美不卡一区二区三区| 精品国产三级电影在线观看| 日韩精品一区在线观看| 欧美一二三四区在线| 三级欧美在线一区| 亚洲在线成人精品| 亚洲综合在线第一页| 亚洲免费在线播放| 亚洲美女在线国产| 亚洲免费在线观看| 亚洲一区二区三区在线| 亚洲精品视频自拍| 亚洲三级免费电影| 亚洲欧美另类久久久精品2019| 亚洲欧美一区二区三区国产精品| 亚洲黄网站在线观看| 一区二区三区四区蜜桃| 一区二区三区中文在线| 亚洲在线视频免费观看| 亚洲第一在线综合网站| 肉色丝袜一区二区| 乱一区二区av| 国产精品中文字幕欧美| 国产91对白在线观看九色| 成人国产精品视频| 91无套直看片红桃| 欧美最猛性xxxxx直播| 欧美一区二区在线观看|