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

📄 setterm.c

📁 Util-linux 软件包包含许多工具。其中比较重要的是加载、卸载、格式化、分区和管理硬盘驱动器
💻 C
📖 第 1 页 / 共 3 页
字号:
		else if (strcmp(argv[0], "hsync") == 0)			*opt_mode = 2;		else if (strcmp(argv[0], "powerdown") == 0)			*opt_mode = 3;		else if (strcmp(argv[0], "off") == 0)			*opt_mode = 0;		else			*bad_arg = TRUE;	} else {		*opt_mode = 0;	}}#if 0static voidparse_standout(int argc, char *argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all: Clear all switch to set or reset. */	/* bad_arg: Set to true if an error is detected. *//* Parse a -standout specification. */	if (argc > 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1)		*opt_all = atoi(argv[0]);	else		*opt_all = -1;}#endifstatic voidparse_msglevel(int argc, char **argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all: Clear all switch to set or reset. */	/* bad_arg: Set to true if an error is detected. */	if (argc > 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1) {		*opt_all = atoi(argv[0]);		if (*opt_all < 0 || *opt_all > 8)			*bad_arg = TRUE;	} else {		*opt_all = -1;	}}static voidparse_snap(int argc, char **argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all: Clear all switch to set or reset. */	/* bad_arg: Set to true if an error is detected. *//* Parse a -dump or -append specification. */	if (argc > 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1) {		*opt_all = atoi(argv[0]);		if ((*opt_all <= 0))			*bad_arg = TRUE;	} else {		*opt_all = 0;	}}static voidparse_snapfile(int argc, char **argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all: Clear all switch to set or reset. */	/* bad_arg: Set to true if an error is detected. *//* Parse a -file specification. */	if (argc != 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1)		strcpy((char *)opt_all, argv[0]);}static voidparse_tabs(int argc, char **argv, int *option, int *tab_array, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* tab_array: Array of tabs */	/* bad_arg: Set to true if an error is detected. */	if (*option || argc > 160)		*bad_arg = TRUE;	*option = TRUE;	tab_array[argc] = -1;	while(argc--) {		tab_array[argc] = atoi(argv[argc]);		if(tab_array[argc] < 1 || tab_array[argc] > 160) {			*bad_arg = TRUE;			return;		}	}}static voidparse_clrtabs(int argc, char **argv, int *option, int *tab_array, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* tab_array: Array of tabs */	/* bad_arg: Set to true if an error is detected. */	if (*option || argc > 160)		*bad_arg = TRUE;	*option = TRUE;	if(argc == 0) {		tab_array[0] = -1;		return;	}	tab_array[argc] = -1;	while(argc--) {		tab_array[argc] = atoi(argv[argc]);		if(tab_array[argc] < 1 || tab_array[argc] > 160) {			*bad_arg = TRUE;			return;		}	}}static voidparse_regtabs(int argc, char **argv, int *option, int *opt_len, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_len: Regular tab length. */	/* bad_arg: Set to true if an error is detected. */	if (*option || argc > 1)		*bad_arg = TRUE;	*option = TRUE;	if(argc == 0) {		*opt_len = 8;		return;	}	*opt_len = atoi(argv[0]);	if(*opt_len < 1 || *opt_len > 160) {		*bad_arg = TRUE;		return;	}}static voidparse_blength(int argc, char **argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all */	/* bad_arg: Set to true if an error is detected. *//* Parse  -blength specification. */	if (argc > 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1) {		*opt_all = atoi(argv[0]);		if (*opt_all > 2000)			*bad_arg = TRUE;	} else {		*opt_all = 0;	}}static voidparse_bfreq(int argc, char **argv, int *option, int *opt_all, int *bad_arg) {	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* option: Clear flag to set. */	/* opt_all */	/* bad_arg: Set to true if an error is detected. *//* Parse  -bfreq specification. */	if (argc > 1 || *option)		*bad_arg = TRUE;	*option = TRUE;	if (argc == 1) {		*opt_all = atoi(argv[0]);	} else {		*opt_all = 0;	}}static voidshow_tabs(void) {	int i, co = tigetnum("cols");	if(co > 0) {		printf("\r         ");		for(i = 10; i < co-2; i+=10)			printf("%-10d", i);		putchar('\n');		for(i = 1; i <= co; i++)			putchar(i%10+'0');		putchar('\n');		for(i = 1; i < co; i++)			printf("\tT\b");		putchar('\n');	}}#define STRCMP(str1,str2) strncmp(str1,str2,strlen(str1))static voidparse_option(char *option, int argc, char **argv, int *bad_arg) {	/* option: Option with leading '-' removed. */	/* argc: Number of arguments for this option. */	/* argv: Arguments for this option. */	/* bad_arg: Set to true if an error is detected. *//* Parse a single specification. */	if (STRCMP(option, "term") == 0)		parse_term(argc, argv, &opt_term, &opt_te_terminal_name, bad_arg);	else if (STRCMP(option, "reset") == 0)		parse_none(argc, argv, &opt_reset, bad_arg);	else if (STRCMP(option, "initialize") == 0)		parse_none(argc, argv, &opt_initialize, bad_arg);	else if (STRCMP(option, "cursor") == 0)		parse_switch(argc, argv, &opt_cursor, &opt_cu_on, bad_arg);	else if (STRCMP(option, "repeat") == 0)		parse_switch(argc, argv, &opt_repeat, &opt_rep_on, bad_arg);	else if (STRCMP(option, "appcursorkeys") == 0)		parse_switch(argc, argv, &opt_appcursorkeys, &opt_appck_on, bad_arg);	else if (STRCMP(option, "linewrap") == 0)		parse_switch(argc, argv, &opt_linewrap, &opt_li_on, bad_arg);#if 0	else if (STRCMP(option, "snow") == 0)		parse_switch(argc, argv, &opt_snow, &opt_sn_on, bad_arg);	else if (STRCMP(option, "softscroll") == 0)		parse_switch(argc, argv, &opt_softscroll, &opt_so_on, bad_arg);#endif	else if (STRCMP(option, "default") == 0)		parse_none(argc, argv, &opt_default, bad_arg);	else if (STRCMP(option, "foreground") == 0)		par_color(argc, argv, &opt_foreground, &opt_fo_color, bad_arg);	else if (STRCMP(option, "background") == 0)		par_color(argc, argv, &opt_background, &opt_ba_color, bad_arg);	else if (STRCMP(option, "ulcolor") == 0)		par_color2(argc, argv, &opt_ulcolor, &opt_ul_color, bad_arg);	else if (STRCMP(option, "hbcolor") == 0)		par_color2(argc, argv, &opt_hbcolor, &opt_hb_color, bad_arg);	else if (STRCMP(option, "inversescreen") == 0)		parse_switch(argc, argv, &opt_inversescreen, &opt_invsc_on, bad_arg);	else if (STRCMP(option, "bold") == 0)		parse_switch(argc, argv, &opt_bold, &opt_bo_on, bad_arg);	else if (STRCMP(option, "half-bright") == 0)		parse_switch(argc, argv, &opt_halfbright, &opt_hb_on, bad_arg);	else if (STRCMP(option, "blink") == 0)		parse_switch(argc, argv, &opt_blink, &opt_bl_on, bad_arg);	else if (STRCMP(option, "reverse") == 0)		parse_switch(argc, argv, &opt_reverse, &opt_re_on, bad_arg);	else if (STRCMP(option, "underline") == 0)		parse_switch(argc, argv, &opt_underline, &opt_un_on, bad_arg);	else if (STRCMP(option, "store") == 0)		parse_none(argc, argv, &opt_store, bad_arg);	else if (STRCMP(option, "clear") == 0)		parse_clear(argc, argv, &opt_clear, &opt_cl_all, bad_arg);	else if (STRCMP(option, "tabs") == 0)		parse_tabs(argc, argv, &opt_tabs, opt_tb_array, bad_arg);	else if (STRCMP(option, "clrtabs") == 0)		parse_clrtabs(argc, argv, &opt_clrtabs, opt_tb_array, bad_arg);	else if (STRCMP(option, "regtabs") == 0)		parse_regtabs(argc, argv, &opt_regtabs, &opt_rt_len, bad_arg);	else if (STRCMP(option, "blank") == 0)		parse_blank(argc, argv, &opt_blank, &opt_bl_min, bad_arg);	else if (STRCMP(option, "dump") == 0)		parse_snap(argc, argv, &opt_snap, &opt_sn_num, bad_arg);	else if (STRCMP(option, "append") == 0)		parse_snap(argc, argv, &opt_append, &opt_sn_num, bad_arg);	else if (STRCMP(option, "file") == 0)		parse_snapfile(argc, argv, &opt_snapfile, (int *)opt_sn_name, bad_arg);	else if (STRCMP(option, "msg") == 0)		parse_switch(argc, argv, &opt_msg, &opt_msg_on, bad_arg);	else if (STRCMP(option, "msglevel") == 0)		parse_msglevel(argc, argv, &opt_msglevel, &opt_msglevel_num, bad_arg);	else if (STRCMP(option, "powersave") == 0)		parse_powersave(argc, argv, &opt_powersave, &opt_ps_mode, bad_arg);	else if (STRCMP(option, "powerdown") == 0)		parse_blank(argc, argv, &opt_powerdown, &opt_pd_min, bad_arg);	else if (STRCMP(option, "blength") == 0)		parse_blength(argc, argv, &opt_blength, &opt_blength_l, bad_arg);	else if (STRCMP(option, "bfreq") == 0)		parse_bfreq(argc, argv, &opt_bfreq, &opt_bfreq_f, bad_arg);#if 0	else if (STRCMP(option, "standout") == 0)		parse_standout(argc, argv, &opt_standout, &opt_st_attr, bad_arg);#endif	else		*bad_arg = TRUE;}/* End of command line parsing routines. */static voidusage(char *prog_name) {/* Print error message about arguments, and the command's syntax. */	fprintf(stderr, _("%s: Argument error, usage\n"), prog_name);	fprintf(stderr, "\n");	fprintf(stderr, "%s\n", prog_name);	fprintf(stderr, _("  [ -term terminal_name ]\n"));	fprintf(stderr, _("  [ -reset ]\n"));	fprintf(stderr, _("  [ -initialize ]\n"));	fprintf(stderr, _("  [ -cursor [on|off] ]\n"));#if 0	fprintf(stderr, _("  [ -snow [on|off] ]\n"));	fprintf(stderr, _("  [ -softscroll [on|off] ]\n"));#endif	fprintf(stderr, _("  [ -repeat [on|off] ]\n"));	fprintf(stderr, _("  [ -appcursorkeys [on|off] ]\n"));	fprintf(stderr, _("  [ -linewrap [on|off] ]\n"));	fprintf(stderr, _("  [ -default ]\n"));	fprintf(stderr, _("  [ -foreground black|blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white|default ]\n"));	fprintf(stderr, _("  [ -background black|blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white|default ]\n"));	fprintf(stderr, _("  [ -ulcolor black|grey|blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white ]\n"));	fprintf(stderr, _("  [ -ulcolor bright blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white ]\n"));	fprintf(stderr, _("  [ -hbcolor black|grey|blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white ]\n"));	fprintf(stderr, _("  [ -hbcolor bright blue|green|cyan"));	fprintf(stderr, _("|red|magenta|yellow|white ]\n"));#if 0	fprintf(stderr, _("  [ -standout [ attr ] ]\n"));#endif	fprintf(stderr, _("  [ -inversescreen [on|off] ]\n"));	fprintf(stderr, _("  [ -bold [on|off] ]\n"));	fprintf(stderr, _("  [ -half-bright [on|off] ]\n"));	fprintf(stderr, _("  [ -blink [on|off] ]\n"));	fprintf(stderr, _("  [ -reverse [on|off] ]\n"));	fprintf(stderr, _("  [ -underline [on|off] ]\n"));	fprintf(stderr, _("  [ -store ]\n"));	fprintf(stderr, _("  [ -clear [all|rest] ]\n"));	fprintf(stderr, _("  [ -tabs [ tab1 tab2 tab3 ... ] ]      (tabn = 1-160)\n"));	fprintf(stderr, _("  [ -clrtabs [ tab1 tab2 tab3 ... ] ]   (tabn = 1-160)\n"));	fprintf(stderr, _("  [ -regtabs [1-160] ]\n"));	fprintf(stderr, _("  [ -blank [0-60] ]\n"));	fprintf(stderr, _("  [ -dump   [1-NR_CONSOLES] ]\n"));	fprintf(stderr, _("  [ -append [1-NR_CONSOLES] ]\n"));	fprintf(stderr, _("  [ -file dumpfilename ]\n"));	fprintf(stderr, _("  [ -msg [on|off] ]\n"));	fprintf(stderr, _("  [ -msglevel [0-8] ]\n"));	fprintf(stderr, _("  [ -powersave [on|vsync|hsync|powerdown|off] ]\n"));	fprintf(stderr, _("  [ -powerdown [0-60] ]\n"));	fprintf(stderr, _("  [ -blength [0-2000] ]\n"));	fprintf(stderr, _("  [ -bfreq freqnumber ]\n"));}static char *ti_entry(const char *name) {	/* name: Terminfo capability string to lookup. *//* Return the specified terminfo string, or an empty string if no such terminfo * capability exists. */	char *buf_ptr;	if ((buf_ptr = tigetstr((char *)name)) == (char *)-1)		buf_ptr = NULL;	return buf_ptr;}static voidperform_sequence(int vcterm) {	/* vcterm: Set if terminal is a virtual console. */	int result;/* Perform the selected options. */	/* -reset. */	if (opt_reset) {		putp(ti_entry("rs1"));	}	/* -initialize. */	if (opt_initialize) {		putp(ti_entry("is2"));	}	/* -cursor [on|off]. */	if (opt_cursor) {		if (opt_cu_on)			putp(ti_entry("cnorm"));		else			putp(ti_entry("civis"));	}	/* -linewrap [on|off]. Vc only (vt102) */	if (opt_linewrap && vcterm) {		if (opt_li_on)			printf("\033[?7h");		else			printf("\033[?7l");	}	/* -repeat [on|off]. Vc only (vt102) */

⌨️ 快捷键说明

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