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

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

?? main.c

?? 《c語言高級實例解析》光盤所附源代碼
?? C
字號:


char *greatest_composer_ever = "EDITOR";


#include "tdestr.h"             
#include "common.h"
#include "define.h"
#include "help.h"
#include "tdefunc.h"


#include <dos.h>                /* 對文件重命名需要調用這個庫 */
#include <bios.h>               /* 直接取得鍵盤的輸入要需要調用這個庫 */
#include <io.h>                 /* 取得文件的屬性值需要調用這個庫 */
#include <fcntl.h>              /* 打開文件的時候標志 */
#if defined( __MSC__ )
   #include <errno.h>
   #include <sys\types.h>       /* 定義了常量和諸如時間格式的數據類型 */
#endif
#include <sys\stat.h>           /* 定義了文件狀態位等常量和全局數據 */

#if defined( __MSC__ )
void (interrupt far *old_control_c)( ); /* 為老的ctrl-c設置變量 */
void (interrupt far *old_int1b)( );     /* 為老的中斷int 1b設置變量 */
#endif


/*
 * 原來的檢查control-break標志位
 */
static int s_cbrk;


/*
 * 函數作用:	處理系統命令行調用主要的編輯函數。
 * 參數:		argc:  命令行參數的個數
 *				argv:  命令行參數
 */
void main( int argc, char *argv[] )
{
#if defined( __MSC__ )
   union REGS inregs, outregs;
#endif

   g_status.found_first = FALSE;
   g_status.arg         = 1;
   g_status.argc        = argc;
   g_status.argv        = argv;

   /*
    * control-break的中斷對于我們程序沒有破壞,所以我們把對它的檢查關閉。
    */
#if defined( __MSC__ )
   inregs.h.ah = 0x33;
   inregs.h.al = 0;
   intdos( &inregs, &outregs );
   s_cbrk = outregs.h.dl;
   old_control_c = _dos_getvect( (unsigned)0x23 );
   _dos_setvect( 0x23, harmless );
   old_int1b = _dos_getvect( (unsigned)0x1b );
   _dos_setvect( 0x1b, ctrl_break );
   inregs.h.ah = 0x33;
   inregs.h.al = 1;
   inregs.h.dl = 0;
   intdos( &inregs, &outregs );
#else
   s_cbrk = getcbrk( );
   ctrlbrk( harmless );
   setcbrk( 0 );
#endif


   /*
    * 為程序建立一個簡單的關鍵錯誤處理器
    */
   install_ceh( &ceh );
   ceh.flag = OK;

   initialize( );
   editor( );
   terminate( );
}



void error( int kind, int line, char *message )
{
char buff[MAX_COLS+2];          
char line_buff[(MAX_COLS+2)*2]; 

   
   switch (kind) {
      case FATAL:
        
         assert( strlen( main1 ) < MAX_COLS );
         strcpy( buff, main1 );
         break;
     case WARNING:
     default:
         
         assert( strlen( main2 ) < MAX_COLS );
         strcpy( buff, main2 );
         break;
   }

   
   strcat( buff, message );

   if (kind == WARNING)
      
      strcat( buff, main3 );

   
   save_screen_line( 0, line, line_buff );
   set_prompt( buff, line );

   if (kind == FATAL) {
      
      terminate( );
      exit( 1 );
   }

   getkey( );
   restore_screen_line( 0, line, line_buff );
   if (g_status.wrapped) {
      g_status.wrapped = FALSE;
      show_search_message( CLR_SEARCH, g_display.mode_color );
   }
}


#if defined( __MSC__ )
void interrupt far harmless( void )
#else
static int harmless( void )
#endif
{
}



void interrupt far ctrl_break( void )
{
   g_status.control_break = TRUE;
}



void terminate( void )
{
union REGS inregs, outregs;
register WINDOW     *wp;        
WINDOW              *w;         
register file_infos *fp;        
file_infos          *f;         
int                 i;

   /*
    * 重建control-break檢測
    */
#if defined( __MSC__ )
   _dos_setvect( 0x1b, old_int1b );
   _dos_setvect( 0x23, old_control_c );
   inregs.h.ah = 0x33;
   inregs.h.al = 1;
   inregs.h.dl = (char)s_cbrk;
   intdos( &inregs, &outregs );
#else
   setcbrk( s_cbrk );
#endif

   /*
    * 如果還有沒有釋放的文件結構,那么釋放他們。
    */
   fp = g_status.file_list;
   while (fp != NULL) {
      f  = fp;
      fp = fp->next;
      free( f );
   }

   /*
    * 如果還有沒有釋放的窗口結構,那么釋放他們。
    */
   wp = g_status.window_list;
   while (wp != NULL) {
      w  = wp;
      wp = wp->next;
      free( w );
   }


   /*
    * 釋放在nfa中的字符類
    */
   for (i=0; i < REGX_SIZE; i++) {
      if (sas_nfa.class[i] == nfa.class[i]  &&  nfa.class[i] != NULL)
         free( nfa.class[i] );
      else if (sas_nfa.class[i] != NULL)
         free( sas_nfa.class[i] );
      else if (nfa.class[i] != NULL)
         free( nfa.class[i] );
   }


   /*
    * 重新設置光標的大小并且卸載83/84鍵盤工具集
    */
   set_cursor_size( mode.cursor_size == SMALL_INS ? g_display.insert_cursor :
                                                    g_display.overw_cursor );
   if (mode.enh_kbd == FALSE)
      simulate_enh_kbd( 0 );

   /*
    * 重建掃描顏色
    */
   if (g_display.adapter != MDA)
      set_overscan_color( g_display.old_overscan );
}


/*

 * 作用: 初始化不依賴硬件的屏幕狀態信息
 *			并且調用硬件出世戶程序來獲得和硬件相關的信息
 
 * 返回: [g_status and g_display]
 * 注意: 這個函數假定g_status和g_display開始時儲存的都是\0。
 */
void initialize( void )
{
int i;

   /*
    * 首先做硬件初始化
    */
   hw_initialize( );

   /*
    * 初始化編輯器的模式,指針和計數器
    */
   bm.search_defined        = ERROR;
   sas_bm.search_defined    = ERROR;
   g_status.sas_defined     = ERROR;
   g_status.sas_search_type = ERROR;

   regx.search_defined      = ERROR;
   sas_regx.search_defined  = ERROR;

   if (mode.undo_max < 2)
      mode.undo_max = 2;

   g_status.marked_file = NULL;
   g_status.current_window = NULL;
   g_status.current_file = NULL;
   g_status.window_list = NULL;
   g_status.file_list = NULL;
   g_status.buff_node = NULL;

   g_status.window_count = 0;
   g_status.file_count = 0;
   g_status.line_buff_len = 0;
   g_status.tabout_buff_len = 0;
   g_status.command = 0;
   g_status.key_pressed = 0;
   g_status.sas_rcol  = 0;
   g_status.sas_rline = 0;
   g_status.recording_key = 0;

   g_status.key_pending = FALSE;
   g_status.found_first = FALSE;
   g_status.sas_found_first = FALSE;
   g_status.copied = FALSE;
   g_status.wrapped = FALSE;
   g_status.marked = FALSE;
   g_status.macro_executing = FALSE;
   g_status.replace_defined = FALSE;

   g_status.screen_display = TRUE;

   g_status.file_chunk = DEFAULT_BIN_LENGTH;

   g_status.sas_tokens[0] = '\0';
   g_status.path[0] = '\0';
   g_status.sas_path[0] = '\0';
   g_status.rw_name[0] = '\0';
   g_status.pattern[0] = '\0';
   g_status.subst[0] = '\0';


   /*
    * 設置翻頁后依然要顯示出的當前的頁中的行號。
    */
   g_status.overlap = 1;


   /*
    * 初始化nfa中的節點。
    */
   for (i=0; i < REGX_SIZE; i++) {
      sas_nfa.node_type[i] = nfa.node_type[i] = 0;
      sas_nfa.term_type[i] = nfa.term_type[i] = 0;
      sas_nfa.c[i] = nfa.c[i] = 0;
      sas_nfa.next1[i] = nfa.next1[i] = 0;
      sas_nfa.next2[i] = nfa.next2[i] = 0;
      sas_nfa.class[i] = nfa.class[i] = NULL;
   }

   /*
    * 沒有在執行宏
    */
   connect_macros( );


   /*
    * 清屏
    */
   cls( );
   show_credits( );
}



void hw_initialize( void )
{
struct vcfg cfg;       
register int *clr;

   
   g_display.ncols     = MAX_COLS;
   g_display.nlines    = MAX_LINES - 1;
   g_display.mode_line = MAX_LINES;
   g_display.line_length = MAX_LINE_LENGTH;

   

   video_config( &cfg );
   g_display.display_address = (char far *)cfg.videomem;

  
   clr =  cfg.color == FALSE ? &colour.clr[0][0] : &colour.clr[1][0];

   g_display.head_color    = *clr++;
   g_display.text_color    = *clr++;
   g_display.dirty_color   = *clr++;
   g_display.mode_color    = *clr++;
   g_display.block_color   = *clr++;
   g_display.message_color = *clr++;
   g_display.help_color    = *clr++;
   g_display.diag_color    = *clr++;
   g_display.eof_color     = *clr++;
   g_display.curl_color    = *clr++;
   g_display.ruler_color   = *clr++;
   g_display.ruler_pointer = *clr++;
   g_display.hilited_file  = *clr++;
   g_display.overscan      = *clr;

   
   if (g_display.adapter != MDA)
      set_overscan_color( g_display.overscan );
}



int  get_help( WINDOW *window )
{
register char *help;
register int line;

   xygoto( -1, -1 );
   help = help_screen[1];
   for (line=0; help != NULL; line++) {
      s_output( help, line, 0, g_display.help_color );
      help = help_screen[line+2];
   }
   line = getkey( );
   redraw_screen( window );
   return( OK );
}



void show_credits( void )
{
register char *credit;
int  line;

   xygoto( -1, -1 );
   credit = credit_screen[0];
   for (line=0; credit != NULL; ) {
      s_output( credit, line+2, 11, g_display.text_color );
      credit = credit_screen[++line];
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re亚洲国产精品| 日韩免费视频线观看| 欧美日韩国产高清一区| 欧美一级艳片视频免费观看| 欧美成人在线直播| 国产精品日日摸夜夜摸av| 亚洲精品乱码久久久久久久久 | 国产一区二区精品在线观看| 国产成人免费视频网站 | 国产69精品久久久久777| 99综合电影在线视频| 欧美一区二区三区精品| 26uuu精品一区二区在线观看| 亚洲精品美腿丝袜| 国产又粗又猛又爽又黄91精品| 日本乱人伦aⅴ精品| 精品国产亚洲在线| 亚洲愉拍自拍另类高清精品| 国产美女精品人人做人人爽| 欧美日韩一区二区三区在线看| 久久久精品国产99久久精品芒果 | 精品国产91久久久久久久妲己 | 欧美理论电影在线| 蜜臀av国产精品久久久久| 91麻豆精品在线观看| 国产精品美女视频| 国产精品99久久久| 日韩欧美激情四射| 一区二区三区日韩欧美| 成人免费av资源| 精品国产精品网麻豆系列| 丝袜美腿成人在线| 国产在线精品一区二区夜色 | 久久久综合精品| 蜜桃一区二区三区在线| 欧美一区二区三区在线看| 亚洲乱码国产乱码精品精可以看| 国产精品中文有码| 精品国产青草久久久久福利| 亚洲成a人v欧美综合天堂 | 日韩欧美成人一区二区| 亚洲精品视频在线看| 成人91在线观看| 欧美激情一区二区三区在线| 国产真实精品久久二三区| 日韩一区二区三区四区| 日韩av在线播放中文字幕| 欧美日本一区二区| 五月天一区二区三区| 欧美日韩一级大片网址| 亚洲综合在线视频| 色综合久久99| 亚洲bt欧美bt精品| 欧美一区二区三区小说| 久久精品国产在热久久| 欧美成人艳星乳罩| 国产老女人精品毛片久久| 久久在线观看免费| 国产成人福利片| 精品国产乱码久久久久久1区2区| 丝袜国产日韩另类美女| 日韩三级视频中文字幕| 国产精品自拍av| 国产精品久久久久久亚洲毛片| aaa欧美大片| 亚洲国产日产av| 日韩一级片在线播放| 国产麻豆视频一区| 自拍偷在线精品自拍偷无码专区| 色综合视频一区二区三区高清| 亚洲国产精品一区二区www在线 | 日韩免费观看2025年上映的电影| 亚洲bt欧美bt精品| 久久免费的精品国产v∧| 懂色av一区二区在线播放| 一区二区三区中文在线| 精品人在线二区三区| 99综合电影在线视频| 日韩国产一二三区| 国产亚洲成av人在线观看导航| 色婷婷久久综合| 视频精品一区二区| 中文一区一区三区高中清不卡| 欧美又粗又大又爽| 国产在线观看一区二区| 一区二区三区高清在线| 久久女同性恋中文字幕| 在线亚洲一区观看| 国产成人精品亚洲777人妖| 中文字幕精品一区二区精品绿巨人 | 欧美精品tushy高清| 韩国女主播成人在线| 一区二区三区四区在线播放| 26uuu亚洲| 欧美日韩国产首页在线观看| 国产高清在线精品| 亚洲成人动漫精品| 国产三级三级三级精品8ⅰ区| 欧美视频日韩视频在线观看| 福利视频网站一区二区三区| 丝袜国产日韩另类美女| 亚洲婷婷综合色高清在线| 欧美xingq一区二区| 色狠狠色噜噜噜综合网| 成熟亚洲日本毛茸茸凸凹| 免费在线视频一区| 一区二区三区精品在线| 中文字幕va一区二区三区| 7878成人国产在线观看| 在线看日本不卡| 波多野洁衣一区| 国产原创一区二区| 蜜臀国产一区二区三区在线播放| 一区二区三区在线视频免费| 欧美经典三级视频一区二区三区| 欧美大胆一级视频| 欧美性大战xxxxx久久久| av一本久道久久综合久久鬼色| 国产麻豆精品视频| 国产在线播放一区三区四| 亚洲影院久久精品| 亚洲欧美激情插| 亚洲三级在线看| 中文天堂在线一区| 国产欧美视频在线观看| 国产校园另类小说区| 精品国内片67194| 精品国产一区二区国模嫣然| 日韩欧美国产小视频| 欧美一区二区三区视频| 在线播放91灌醉迷j高跟美女| 在线观看日韩精品| 欧美日韩一区三区四区| 欧美伊人精品成人久久综合97 | 中文字幕一区二区不卡| 亚洲欧美偷拍三级| 尤物在线观看一区| 一区二区三区国产豹纹内裤在线| 一区二区三区在线观看国产| 日韩二区三区在线观看| 国产精品夜夜爽| 欧美又粗又大又爽| 精品久久久久久久人人人人传媒 | 成人sese在线| 欧美无人高清视频在线观看| 日韩欧美在线网站| 亚洲国产高清aⅴ视频| 亚洲第一会所有码转帖| 国产精品一二三四| 欧美精品色综合| 国产视频一区二区三区在线观看 | 欧美情侣在线播放| 国产农村妇女精品| 亚洲成人精品在线观看| 成人综合在线视频| 日韩欧美国产精品一区| 亚洲人成网站色在线观看| 极品少妇一区二区三区精品视频 | 99精品欧美一区二区三区小说| 欧美精品一二三区| 亚洲天堂网中文字| 国产精品自拍一区| 欧美一三区三区四区免费在线看 | 久久成人久久鬼色| 色婷婷综合五月| 国产清纯在线一区二区www| 亚洲va中文字幕| a4yy欧美一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 亚洲综合色自拍一区| 成人av综合一区| 精品国产乱码久久久久久1区2区| 亚洲一区二区三区四区在线免费观看 | 亚洲综合小说图片| 国产91清纯白嫩初高中在线观看| 91精品国产综合久久久久久漫画| 亚洲女与黑人做爰| 成人av免费在线观看| 久久色视频免费观看| 久久精品av麻豆的观看方式| 欧美群妇大交群中文字幕| 夜夜嗨av一区二区三区中文字幕| 成av人片一区二区| 国产精品女同互慰在线看| 国产一区视频导航| 久久久综合网站| 国产乱码字幕精品高清av| 精品国产乱码久久久久久老虎 | 日韩高清一区二区| 欧美久久久久久蜜桃| 无码av中文一区二区三区桃花岛| 一本色道久久综合亚洲精品按摩| 中文字幕在线不卡国产视频| 大桥未久av一区二区三区中文| 久久亚洲免费视频| 国产一区二区免费看| 久久这里只精品最新地址| 国产一区视频导航| 国产欧美1区2区3区| 成人毛片视频在线观看|