⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.h

📁 功能强大的文本编辑器
💻 H
📖 第 1 页 / 共 2 页
字号:
/*      config.h                            17.02.04       */
/*
/  --------------------------------------------------------------
/  Copyright (C) 2003: Michael Braun
/                      Kaetinger Muehlenweg 103 A
/                      D-28816 Stuhr
/  --------------------------------------------------------------
/
/    header file for all mbedit files
/
/    configuration of operating system, video server, ...
/
*/


/* the actual operating system is defined here */
#include "config2.hh"

#if 0

/* -FF-  */

   ==============================================================
     Einige Anmerkungen zur Portierung auf verschiedene Systeme
   ==============================================================

   In diesem header-file sind die zentralen Informationen zur
   Anpassung an die verschiedenen Betriebssysteme zusammengefasst.

   Zum Kompilieren des Programmpakets auf dem jeweiligen Betriebssystem
   muss die #define-Konstante ACT_OP_SYSTEM auf einen der moeglichen
   Werte gesetzt werden.

   Um ein hohes Mass an Portabilitaet zu erreichen (besonders der compiler
   unter ultrix hat hier Schwierigkeiten gemacht), sind beim Programmieren
   folgende Richtlinien zu beachten:

      - compiler-schalter (die dinger mit dem '#') muessen immer in der
        ganz linken Spalte stehen, einruecken ist nicht erlaubt.

      - Konstante Ausdruecke duerfen kein fuehrendes '+' enthalten,
        also:      ii =  1;
        anstatt:   ii = +1;   (erlaubt ist natuerlich:  ii = -1;)

      - Die function 'main' muss im K+R-Format stehen, nicht in ANSI.
        also:      int main (argc, argv)
                   int argc; char *argv[];
                   { ...
        anstatt:   int main (int argc, char *argv[])
                   { ...

      - Der ultrix-compiler kennt den type specifier 'const' nicht.
        Das laesst sich aber (siehe UNIX-Zweig) mit der Anweisung
        #define const   /* nix */               leicht beheben.

      - Der header-file 'ctype.h' und die darin enthaltenen Makros duerfen
        nicht verwendet werden, wenn deren Argumente negativ werden koennen.

        Dies ist bei einigen Programmen der Fall; z.B. die Tasten-Codes der 
        'special keys' (Funktions- und Cursor-Tasten, ALT-Kombinationen) 
        sind in der internen Darstellung als negative ints repraesentiert.
        
        Um diesen Problemen aus dem Wege zu gehen, wurden die benoetigten
        Programme (toupper, tolower, isdigit, isxdigit, isprint, ...)
        selbst neu geschrieben (siehe file 'mb_ctype.c').

        Wenn weitere dieser Macros verwendet werden sollen, muessen auch
        diese umgeschrieben werden (nur, wenn neg. Argumente vorkommen).

        Diese Problematik besteht uebrigens bei allen Systemen.

      - In microsft.c stehen einige Routinen, die sonst nur in der 
        Microsoft-Library existieren, aber kein ANSI-Standard sind
        (stricmp, strnicmp, strupr, _lrotl, _lrotr).

      - Ferner gibt es in memo_hnd.c eine function 'memcpy_rev', die wie memcpy
        funktioniert, aber auch mit Laengen > 64 k, und unabhaengig von der
        Schieberichtung (problematisch bei Ueberlappung von src und dest).

      - Der ultrix-compiler versteht Hex-Konstanten nur in character-
        Ausdruecken, nicht aber in strings. Dort muss die oktale Schreib-
        weise verwendet werden.
        also:      "\033"     <esc>
        anstatt:   "\x1b"     (erlaubt ist dagegen auch '\x1b' fuer '\033')

/* -FF-  */

#endif

/*---------------------------------*/
/* definition of screen server     */
/*---------------------------------*/

#define SERVER_VGA     1
#define SERVER_VT_100  2

#if (ACT_OP_SYSTEM == MS_DOS)
#define ACT_SERVER        SERVER_VGA
#else
#define ACT_SERVER        SERVER_VT_100
#endif

#if (ACT_SERVER == SERVER_VGA)
#define TEXT_VIDEO_SERVER "VGA"
#define CHANGE_LINES_DIRECT 1
#else
#define TEXT_VIDEO_SERVER "vt 100"
#define CHANGE_LINES_DIRECT 0
#endif


#if (ACT_OP_SYSTEM == UNIX_SVR4)
#define SLOW_TERMINAL      1           /* <== select here !! */
#define WITH_CURSOR_ON_OFF 1
#else
#define SLOW_TERMINAL      0
#define WITH_CURSOR_ON_OFF 0
#endif


/* display action_flag ('?' or '!') in status line 1 */
#define WITH_ACTION_FLAG   1           /* <== select here !! */


/*---------------------------------*/
/* some special filenames          */
/*---------------------------------*/

#define HISTO_FILENAME "mbedit.hst"     /* history             */
#define STATS_FILENAME "mbedit.sta"     /* status (last_again) */
#define MACRO_FILENAME "mbedit.mac"     /* macros              */
#define TEMPO_FILENAME "mbedit.tmp"     /* temp's              */
#define SYNTX_FILENAME "mbedit.syn"     /* syntax highlighting */

#define FILENAME_LEN      13            /* max. 1+8+1+3 = 13 */


/*---------------------------------*/
/* some special features           */
/*---------------------------------*/

                                        /* mbedit option "- | last_again"  */
#define WITH_LAST_AGAIN    1            /* 0: no  "mbedit.sta" at all      */
                                        /* 1: one "mbedit.sta" in home dir */
                                        /* 2: one "mbedit.sta" in every    */
                                        /*    current dir (emacs style)    */

#define WITH_ZULU          1            /* command 'Z'ulu: 'B'eep, 'P'ause */

#define WITH_E_DELIMIT     1            /* 0: Delimiters are all chars except
                                           letters, digits and underscore  */
                                        /* 1: Set E_delimit is available   */


/*---------------------------------*/
/* definition of some global       */
/* characters + strings            */
/*---------------------------------*/


/* function "automatic resize after window change"                */
/*                                                                */
/* WITH_WINCH : not def. or 0 : SIGWINCH not available or unknown */
/*                          1 : SIGWINCH with "tput"              */
/*                          2 : SIGWINCH with "mb_tput"           */
/*                          3 : SIGWINCH with "ioctl"      (unix) */
/*                          4 : SIGWINCH with "eval; tput"  (SCO) */
/*                          5 : SIGWINCH with "vb_getvsize" (DOS) */
/*                          6 : SIGWINCH with "getstat"    (OS_9) */
/*                          7 : SIGWINCH with "mode con"          */
/*                          8 : SIGWINCH with "GetConsoleScreenBufferInfo" (WIN_32) */
/*                          9 : SIGWINCH with "tcgetsize" (QNX6 ) */

/* function "short sleep in steps smaller than 1 sec"             */
/*                                                                */
/* WITH_USEC_CLOCK: n.d. or 0 : clock() not available or unknown, */
/*                              use sleep() istead                */
/*                          1 : clock() available,use it          */


#define WITH_SYNTAX_HIGHLIGHTING  1


#if (ACT_OP_SYSTEM == MS_DOS)
#define TEXT_OP_SYSTEM "MS/DOS (Microsoft)"
#define WITH_WINCH      5
#define WITH_USEC_CLOCK 0
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#define EOLA            0x0a      /* <lf> */
#define EOLN_INIT       0x0d0a    /* <cr><lf> */
#define HELP_COMMAND    "qh "
#define CONSOLE_NAME    "CON"
#define PATH_SEPARATOR  ';'
#define FILE_SEPARATOR  "\\"
#define HOME_DIR        (const char *) getenv(":HOME:")
#define TEMP_DIR        (const char *) getenv("TMP")
#define NULL_DEVICE     "NUL"
#endif

#if (ACT_OP_SYSTEM == WIN_32)
#define TEXT_OP_SYSTEM "Windows (Microsoft)"
#define WITH_WINCH      8  /* 0 / 7 */
#define WITH_USEC_CLOCK 0
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#define EOLA            0x0a      /* <lf> */
#define EOLN_INIT       0x0d0a    /* <cr><lf> */
#define HELP_COMMAND    "qh "
#define CONSOLE_NAME    "CON"
#define PATH_SEPARATOR  ';'
#define FILE_SEPARATOR  "\\"
#define HOME_DIR        (const char *) getenv(":HOME:")
#define TEMP_DIR        (const char *) getenv("TMP")
#define NULL_DEVICE     "NUL"
#endif


#if (ACT_OP_SYSTEM == OS_9)

#if (OS_9_PPC)
#define TEXT_OP_SYSTEM "os-9000 (Motorola)"
#else
#define TEXT_OP_SYSTEM "os-9 (Microware)"
#endif

#define WITH_WINCH      6
#define WITH_USEC_CLOCK 0
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#define EOLA            0x0d      /* <cr> */
#define EOLN_INIT       0x0d      /* <cr> */
#define HELP_COMMAND    "help "
#define CONSOLE_NAME    (const char *) getenv("PORT")
#define PATH_SEPARATOR  ':'
#define FILE_SEPARATOR  "/"
#define HOME_DIR        (const char *) getenv("HOME")
#define TEMP_DIR        "/r0/tmp"
#define NULL_DEVICE     "/nil"
#endif

#if (UNIX)

#if (ACT_OP_SYSTEM == UNIX_SVR4)
#define TEXT_OP_SYSTEM "unix (System V Rel.4)"     /* max. 21 chars. */
#define WITH_WINCH      0
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#elif (ACT_OP_SYSTEM == DEC_ULTRIX)
#define TEXT_OP_SYSTEM "unix (DEC ultrix)"
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 1

#elif (ACT_OP_SYSTEM == SGI_IRIX)
#define TEXT_OP_SYSTEM "unix (SGI IRIX)"
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 1

#elif (ACT_OP_SYSTEM == SUN_OS)
#define TEXT_OP_SYSTEM "unix (sun OS)"
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#elif (ACT_OP_SYSTEM == SCO_UNIX)
#define TEXT_OP_SYSTEM "unix (SCO)"
#define WITH_WINCH      4
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 0

#elif (ACT_OP_SYSTEM == LINUX)
#if (LINUX_FOR_CYGWIN)
#define TEXT_OP_SYSTEM "unix (cygwin)"
#else
#define TEXT_OP_SYSTEM "unix (linux)"
#endif
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 0
#define CLEAR_WITH_BLANKS 0

#elif (ACT_OP_SYSTEM == OSF_1)
#define TEXT_OP_SYSTEM "unix (DEC OSF/1)"
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 1
#define QSORT_FUNC_ANSI 1
#define CLEAR_WITH_BLANKS 1

#elif (ACT_OP_SYSTEM == HP_UX)
#define TEXT_OP_SYSTEM "unix (hp-ux)"
#define WITH_WINCH      3
#define WITH_USEC_CLOCK 0
#define QSORT_FUNC_ANSI 0
#define CLEAR_WITH_BLANKS 1

#elif (ACT_OP_SYSTEM == QNX)    /* QNX4 or QNX6 */
#if (OS_QNX6)
#define TEXT_OP_SYSTEM "unix (qnx6)"
#define WITH_WINCH      9
#else
#define TEXT_OP_SYSTEM "unix (qnx4)"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -