demolib.c
来自「一个C格式的脚本处理函数库源代码,可让你的C程序具有执行C格式的脚本文件」· C语言 代码 · 共 97 行
C
97 行
/* These routines are used by several of the demos. */#include "config.h"#include <stdio.h>#include <signal.h>#ifdef HAVE_STDLIB_H# include <stdlib.h>#endif#include <slang.h>static void demolib_exit (int sig){ SLang_reset_tty (); SLsmg_reset_smg (); if (sig) { fprintf (stderr, "Exiting on signal %d\n", sig); exit (1); } exit (sig);}#ifdef SIGTSTPstatic void sigtstp_handler (int sig){ demolib_exit (sig);}#endif#ifdef SIGINTstatic void sigint_handler (int sig){ demolib_exit (sig);}#endifstatic void init_signals (void){#ifdef SIGTSTP SLsignal (SIGTSTP, sigtstp_handler);#endif#ifdef SIGINT SLsignal (SIGINT, sigint_handler);#endif}static void exit_error_hook (char *fmt, va_list ap){ SLang_reset_tty (); SLsmg_reset_smg (); vfprintf (stderr, fmt, ap); fputc ('\n', stderr); exit (1);} static int demolib_init_terminal (int tty, int smg){ SLang_Exit_Error_Hook = exit_error_hook; /* It is wise to block the occurance of display related signals while we are * initializing. */ SLsig_block_signals (); SLtt_get_terminfo (); /* SLkp_init assumes that SLtt_get_terminfo has been called. */ if (tty && (-1 == SLkp_init ())) { SLsig_unblock_signals (); return -1; } init_signals (); if (tty) SLang_init_tty (-1, 0, 1);#ifdef REAL_UNIX_SYSTEM if (tty) SLtty_set_suspend_state (1);#endif if (smg && (-1 == SLsmg_init_smg ())) { SLsig_unblock_signals (); return -1; } SLsig_unblock_signals (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?