亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
亚洲视频资源在线| 香蕉乱码成人久久天堂爱免费| 久久久久久亚洲综合影院红桃| 欧美三级电影网| 日韩一区二区视频| 日韩片之四级片| 久久精品日韩一区二区三区| 国产精品久久影院| 日韩高清不卡一区二区| 国产91综合一区在线观看| 91麻豆精品在线观看| 日韩一区二区在线观看| 国产精品美女一区二区三区| 久久精品国产精品亚洲综合| 91麻豆精东视频| 精品国产伦一区二区三区观看方式| 国产精品成人免费在线| 亚洲高清在线视频| 白白色亚洲国产精品| 在线免费观看一区| 国产精品不卡视频| 久久av资源站| 欧美剧情电影在线观看完整版免费励志电影 | 午夜精品爽啪视频| 成人福利视频在线看| 6080国产精品一区二区| 中文字幕国产一区二区| 免费成人你懂的| 欧美日韩高清不卡| 亚洲人123区| 精品一二三四区| 欧美一区二区三区小说| 久久免费偷拍视频| 精品午夜久久福利影院| 日韩一区二区在线观看| 亚洲午夜精品网| 91麻豆自制传媒国产之光| 欧美国产精品专区| 国产精品77777竹菊影视小说| 欧美精品视频www在线观看| 亚洲精选视频免费看| 成人av网址在线观看| 久久色成人在线| 狠狠色综合色综合网络| 欧美一区二区在线观看| 国产精品久久久久久亚洲伦| 国产精品小仙女| 国产网站一区二区| 麻豆国产精品官网| 精品国产乱码久久久久久蜜臀| 亚洲第一福利一区| 国产校园另类小说区| 激情综合一区二区三区| 日韩一区二区三区三四区视频在线观看| 亚洲一区二区三区四区在线观看| 97精品国产露脸对白| 亚洲柠檬福利资源导航| 成人性视频免费网站| 日韩一区在线免费观看| 91在线一区二区三区| 亚洲在线成人精品| 欧美性做爰猛烈叫床潮| 偷拍亚洲欧洲综合| 精品国产91乱码一区二区三区 | 日韩一区二区三区电影| 奇米777欧美一区二区| 国产欧美精品在线观看| 欧美天堂一区二区三区| 国产一二三精品| 亚洲激情在线播放| 精品美女被调教视频大全网站| 不卡欧美aaaaa| 麻豆精品视频在线| 亚洲精品国产无套在线观| 精品国产亚洲在线| 欧美在线综合视频| 国产成人精品一区二区三区四区 | 国产精品久久久久久久久免费相片| 精品污污网站免费看| 高潮精品一区videoshd| 午夜久久久久久久久| 中文字幕亚洲区| 久久免费的精品国产v∧| 欧美高清激情brazzers| 一本大道综合伊人精品热热| 久久99久久精品| 另类欧美日韩国产在线| 亚洲精品中文字幕在线观看| 2021中文字幕一区亚洲| 正在播放亚洲一区| 欧美唯美清纯偷拍| 91丝袜美腿高跟国产极品老师 | 国产目拍亚洲精品99久久精品| 欧美亚洲国产一卡| 99精品视频一区| 国产凹凸在线观看一区二区| 久久精品国产色蜜蜜麻豆| 日韩av一二三| 日韩激情中文字幕| 亚洲bt欧美bt精品| 亚洲国产精品久久久久秋霞影院 | 亚洲欧美视频一区| 国产精品国产三级国产aⅴ入口 | 日韩一区二区影院| 欧美日韩一级黄| 欧美三片在线视频观看| 欧日韩精品视频| 成人小视频免费观看| 国产999精品久久久久久| 国产99久久久精品| 国产69精品久久久久毛片| 国产精品99久久久久久似苏梦涵| 国产一区二区不卡在线| 国产美女av一区二区三区| 久久国产夜色精品鲁鲁99| 久久66热偷产精品| 国产精一品亚洲二区在线视频| 国产一区二区三区四| 国产传媒日韩欧美成人| www.欧美日韩| 91视频免费播放| 在线精品视频免费播放| 欧美日韩精品一区二区三区四区| 欧美色窝79yyyycom| 在线播放欧美女士性生活| 日韩欧美的一区| 久久精品一区四区| 国产精品视频你懂的| 亚洲三级久久久| 日韩精品三区四区| 男女性色大片免费观看一区二区| 蜜臀av在线播放一区二区三区| 国产精品一区二区久激情瑜伽| 成人伦理片在线| 欧美日韩免费在线视频| 日韩欧美高清一区| 亚洲国产精品99久久久久久久久| 免费日韩伦理电影| 国产成人在线观看| 欧美探花视频资源| 亚洲精品一区二区三区福利| 综合久久给合久久狠狠狠97色 | 91精品福利在线一区二区三区 | 日韩欧美你懂的| 国产区在线观看成人精品 | 中文字幕一区二区三区色视频| 亚洲女性喷水在线观看一区| 日本亚洲电影天堂| 国产91精品入口| 欧美手机在线视频| 久久久九九九九| 亚洲777理论| 国产麻豆91精品| 欧美亚洲愉拍一区二区| 日韩欧美中文字幕精品| 中文字幕综合网| 久久国产精品露脸对白| 91在线观看视频| 欧美大片拔萝卜| 亚洲精品亚洲人成人网在线播放| 久久成人免费网站| 欧美中文一区二区三区| 久久噜噜亚洲综合| 亚洲成a人片在线观看中文| 国产成人精品www牛牛影视| 欧美人伦禁忌dvd放荡欲情| 国产欧美日韩不卡| 蜜桃视频在线观看一区| 在线观看日产精品| 中文字幕亚洲成人| 加勒比av一区二区| 欧美久久久久中文字幕| 日韩久久一区二区| 国产精品一区免费在线观看| 51精品国自产在线| 亚洲综合丁香婷婷六月香| 国产成人啪午夜精品网站男同| 日韩三级视频中文字幕| 丝袜亚洲另类欧美| 欧美私人免费视频| 亚洲综合激情另类小说区| 成人免费的视频| 国产精品午夜在线| 国产69精品久久久久777| 久久综合九色综合97婷婷| 美女在线观看视频一区二区| 欧美日韩一区不卡| 亚洲国产一区视频| 欧美少妇一区二区| 一区二区在线观看免费视频播放| 九九在线精品视频| 久久一日本道色综合| 国产在线精品不卡| 精品国产免费一区二区三区四区 | 亚洲网友自拍偷拍| 欧美色手机在线观看| 亚洲v中文字幕| 欧美日韩夫妻久久| 久久66热re国产| 欧美精品一区二|