亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99久久精品一区二区| 久久久亚洲精品石原莉奈| 91精品国产入口| 国产精品久久久久天堂| 日韩在线卡一卡二| 91亚洲精品一区二区乱码| 欧美一区二区三区四区视频 | 国产肉丝袜一区二区| 一级女性全黄久久生活片免费| 经典三级在线一区| 色国产综合视频| 国产欧美精品一区aⅴ影院| 天堂va蜜桃一区二区三区漫画版| 成人av网址在线| 精品捆绑美女sm三区| 一区二区三区欧美久久| 成人网男人的天堂| 精品国产sm最大网站免费看| 日日欢夜夜爽一区| 欧美性大战xxxxx久久久| 国产精品久久久久四虎| 国产精品一卡二卡| 精品国产亚洲在线| 日韩av中文字幕一区二区三区| 欧美亚洲高清一区| 亚洲人成网站色在线观看| 成人av小说网| 国产精品福利一区| 国产91精品一区二区| 国产欧美日韩视频在线观看| 国产精品2024| 久久精品这里都是精品| 国产成人综合在线播放| 精品国产露脸精彩对白| 韩国毛片一区二区三区| 欧美精品一区二区久久久| 日本网站在线观看一区二区三区 | 激情欧美一区二区| 日韩欧美一二区| 狠狠色丁香久久婷婷综| 26uuu国产日韩综合| 国产一区二区久久| 国产精品免费视频网站| www.一区二区| 一区二区三区精品视频| 在线观看免费成人| 日本va欧美va精品发布| 精品乱人伦一区二区三区| 国产一区999| 亚洲欧美一区二区在线观看| 97精品久久久午夜一区二区三区| 亚洲精品老司机| 欧美日韩视频不卡| 免费xxxx性欧美18vr| 久久亚洲一区二区三区明星换脸| 国产91精品一区二区麻豆亚洲| 成人欧美一区二区三区黑人麻豆| 欧美色综合网站| 青青草伊人久久| 国产欧美日韩精品在线| 在线观看欧美日本| 久久成人羞羞网站| 欧美激情一二三区| 欧美在线观看一二区| 青娱乐精品视频| 国产精品国产a| 欧美肥大bbwbbw高潮| 国产成人在线影院 | 成人av在线一区二区| 樱桃视频在线观看一区| 日韩一区二区视频在线观看| 国产乱码精品一区二区三| 一区二区三国产精华液| 精品少妇一区二区三区免费观看| 成人禁用看黄a在线| 日韩 欧美一区二区三区| 国产精品无码永久免费888| 欧美写真视频网站| 国产高清一区日本| 天天av天天翘天天综合网色鬼国产| 2023国产精品| 欧美精品乱人伦久久久久久| 成人性视频网站| 免费人成精品欧美精品 | 国产午夜精品一区二区三区四区| 色综合咪咪久久| 国产精品一区二区不卡| 日韩电影在线一区二区三区| 中文字幕视频一区| 精品福利在线导航| 欧美日韩情趣电影| 91免费在线视频观看| 国产麻豆精品久久一二三| 天堂av在线一区| 一区二区三区精品在线观看| 中文字幕av一区二区三区| www成人在线观看| 欧美久久一区二区| 在线精品亚洲一区二区不卡| 成人国产视频在线观看| 国产精品一区三区| 黄一区二区三区| 日韩影院精彩在线| 亚洲成a人片在线观看中文| 中文字幕在线免费不卡| 国产视频一区不卡| 欧美精品一区二区久久久| 欧美日韩电影在线| 欧美日韩免费高清一区色橹橹 | 久久综合色播五月| 欧美一级专区免费大片| 91.com视频| 欧美精品日韩一本| 欧美日韩久久久一区| 欧洲精品视频在线观看| 色综合天天综合网国产成人综合天 | 琪琪一区二区三区| 日韩高清在线电影| 青青草一区二区三区| 免费在线观看成人| 日本vs亚洲vs韩国一区三区二区| 日韩av电影天堂| 久久国产乱子精品免费女| 蜜桃av一区二区三区| 激情小说欧美图片| 国产毛片精品一区| 成人性生交大片免费看视频在线| 国产成人精品免费| 91丨九色丨黑人外教| 色老汉一区二区三区| 欧美综合在线视频| 欧美酷刑日本凌虐凌虐| 欧美一级免费观看| 欧美v日韩v国产v| 国产日韩欧美a| 亚洲欧美日韩成人高清在线一区| 亚洲免费看黄网站| 丝袜亚洲精品中文字幕一区| 麻豆精品视频在线观看免费| 国产成人免费高清| 91免费在线看| 欧美一二三区在线| 国产亚洲短视频| 亚洲综合色噜噜狠狠| 男人的j进女人的j一区| 国产成人夜色高潮福利影视| 色婷婷一区二区三区四区| 欧美精品aⅴ在线视频| 欧美tickle裸体挠脚心vk| 中文字幕视频一区二区三区久| 亚洲国产裸拍裸体视频在线观看乱了| 日本视频中文字幕一区二区三区| 国产激情精品久久久第一区二区| 色婷婷综合久久久久中文一区二区| 欧美日韩一区中文字幕| 精品国产乱码久久久久久影片| 国产精品久久精品日日| 日韩精品视频网| 不卡的av中国片| 日韩一区二区三区四区| 国产精品初高中害羞小美女文| 亚洲一区二区三区四区在线观看| 国产美女主播视频一区| 精品视频在线免费看| 国产日韩欧美制服另类| 午夜精品久久久久久久久久久| 国产精品亚洲视频| 欧美人与性动xxxx| 国产精品丝袜91| 久草精品在线观看| 欧美色综合网站| 一区免费观看视频| 极品少妇一区二区| 欧美日韩国产在线播放网站| 欧美韩日一区二区三区| 另类的小说在线视频另类成人小视频在线 | 成人av资源在线| 日韩一区二区免费电影| 一区二区三区久久| av亚洲精华国产精华精| 精品成人佐山爱一区二区| 日韩高清一区在线| 欧美日韩国产首页| 亚洲免费观看高清完整版在线| 国产高清不卡二三区| 欧美电影精品一区二区| 丝袜亚洲另类丝袜在线| 日本韩国一区二区三区视频| 国产精品国产三级国产有无不卡| 国产精品影视天天线| 欧美大胆人体bbbb| 欧美aⅴ一区二区三区视频| 在线日韩av片| 亚洲卡通欧美制服中文| 99r精品视频| 国产精品麻豆一区二区| 成人av综合一区| 亚洲欧美综合网| 91麻豆国产精品久久| 亚洲桃色在线一区|