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

📄 modes.c

📁 ncurses-5.4
💻 C
📖 第 1 页 / 共 2 页
字号:
		putchp('T');	}	go_home();	put_newlines(4);	putchp('.');	for (i = 2; i < columns; i++) {		if (i % tabat == 1) {			putchp('T');		} else {			putchp('.');		}	}	go_home();	put_newlines(5);	if (set_tab) {		ptextln("If the last two lines are not the same then (hts) has failed.");	} else	if (init_tabs > 0) {		ptextln("If the last two lines are not the same then (it) is wrong.");	} else {		ptextln("If the last two lines are the same then maybe you do have tabs and (it) should be changed.");	}	generic_done_message(t, state, ch);}/***	subtest_xt(test_list, status, ch)****	(xt) glitch*/static voidsubtest_xt(	struct test_list *t,	int *state,	int *ch){	int tabat;		/* the tab spacing we end up with */	int cc;	tabat = set_tab ? 8 : init_tabs;	if (!over_strike && (tabat > 0)) {		ptext("(xt) should not ");		put_cr();		ptext("(xt) should");		cc = char_count;		while (cc < 16) {			putchp('\t');			cc = ((cc / tabat) + 1) * tabat;		}		putln("be set.");		sprintf(temp, "(xt) Destructive-tab is %s in the data base.",			dest_tabs_magic_smso ? "true" : "false");		ptextln(temp);		generic_done_message(t, state, ch);	}}/***	subtest_cbt(test_list, status, ch)****	(cbt) back tab*/static voidsubtest_cbt(	struct test_list *t,	int *state,	int *ch){	int i;	if (back_tab) {		put_clear();		ptext("Back-tab (cbt)");		go_home();		put_crlf();		for (i = 1; i < columns; i++) {			putchp(' ');		}		for (i = 0; i < columns; i += 8) {			tc_putp(back_tab);			putchp('T');			tc_putp(back_tab);		}		go_home();		put_newlines(2);		for (i = 1; i < columns; i++) {			if (i % 8 == 1) {				putchp('T');			} else {				putchp(' ');			}		}		go_home();		put_newlines(3);		ptextln("The preceding two lines should be the same.");	} else {		ptextln("(cbt) Back-tab not present");	}	generic_done_message(t, state, ch);}/***	subtest_xenl(test_list, status, ch)****	(xenl) eat newline glitch*/static voidsubtest_xenl(	struct test_list *t,	int *state,	int *ch){	int i, j, k;	if (over_strike) {		/* test (xenl) on overstrike terminals */		if (!can_go_home || !can_clear_screen) {			ptextln("(xenl) Newline-glitch not tested, can't home cursor and clear.");			generic_done_message(t, state, ch);			return;		}		put_clear();		/*		   this test must be done in raw mode.  Otherwise UNIX will		   translate CR to CRLF.		*/		if (stty_query(TTY_OUT_TRANS))			tty_raw(1, char_mask);		ptext("\nreset (xenl). Does ");		i = char_count;		put_str("not ignore CR, does ");		k = char_count;		put_str("not ignore LF");		go_home();		for (j = 0; j < columns; j++)			put_this(' ');		put_cr();		for (j = 0; j < i; j++)			putchp(' ');		put_str("@@@\n@@");		go_home();		for (j = 0; j < columns; j++)			put_this(' ');		put_lf();		for (j = 0; j < k; j++)			putchp(' ');		put_str("@@@\r@@");		tty_set();		go_home();		put_newlines(4);		sprintf(temp, "(xenl) Newline-glitch is %s in the data base",			eat_newline_glitch ? "true" : "false");		ptextln(temp);	} else {		/* test (xenl) when (os) is reset */		if (!can_go_home) {			ptextln("(xenl) Newline-glitch not tested, can't home cursor");			generic_done_message(t, state, ch);			return;		}		/* (xenl) test */		put_clear();		/*		   this test must be done in raw mode.  Otherwise		   UNIX will translate CR to CRLF.		*/		if (stty_query(TTY_OUT_TRANS))			tty_raw(1, char_mask);		for (j = 0; j < columns; j++)			put_this(' ');		put_cr();		ptext("(xenl) should be set. Does not ignore CR");		go_home();		put_crlf();		for (j = 0; j < columns; j++)			put_this(' ');		put_lf();	/* test (cud1) */		ptext("(xenl) should be set. Ignores (cud1)");		go_home();		put_newlines(3);		if (scroll_forward && cursor_down &&			strcmp(scroll_forward, cursor_down)) {			for (j = 0; j < columns; j++)				put_this(' ');			put_ind();	/* test (ind) */			ptext("(xenl) should be set. Ignores (ind)");			go_home();			put_newlines(5);		}		tty_set();		ptextln("If you don't see text above telling you to set it, (xenl) should be false");		sprintf(temp, "(xenl) Newline-glitch is %s in the data base",			eat_newline_glitch ? "true" : "false");		ptextln(temp);	}	generic_done_message(t, state, ch);}/***	subtest_eo(test_list, status, ch)****	(eo) erase overstrike*/static voidsubtest_eo(	struct test_list *t,	int *state,	int *ch){	if (transparent_underline || over_strike || underline_char) {		ptext("(eo) should ");		if (underline_char) {			ucprint("not");		} else {			uprint("not");		}		put_cr();		ptextln("(eo) should     be set");		sprintf(temp, "\n(eo) Erase-overstrike is %s in the data base",			erase_overstrike ? "true" : "false");		ptextln(temp);		generic_done_message(t, state, ch);	}}/***	subtest_xmc(test_list, status, ch)****	(xmc) magic cookie glitch*/static voidsubtest_xmc(	struct test_list *t,	int *state,	int *ch){	int i, j;	if (enter_standout_mode) {		sprintf(temp, "\n(xmc) Magic-cookie-glitch is %d in the data base", magic_cookie_glitch);		ptextln(temp);		j = magic_cookie_glitch * 8;		for (i = 0; i < j; i++) {			put_str(" ");		}		ptextln("        These two lines should line up.");		if (j > 0) {			char_count += j;		}		for (i = 0; i < 4; i++) {			put_mode(enter_standout_mode);			putchp(' ');			put_mode(exit_standout_mode);			putchp(' ');		}		ptextln("These two lines should line up.");		ptext("If they don't line up then (xmc) magic-cookie-glitch should be greater than zero.  ");		generic_done_message(t, state, ch);	}}/***	subtest_xhp(test_list, status, ch)****	(xhp) erase does not clear standout mode*/static voidsubtest_xhp(	struct test_list *t,	int *state,	int *ch){	if (enter_standout_mode) {		put_crlf();		put_mode(enter_standout_mode);		put_str("Stand out");		put_mode(exit_standout_mode);		put_cr();		ptextln("If any part of this line is standout then (xhp) should be set.");		sprintf(temp, "(xhp) Erase-standout-glitch is %s in the data base",			ceol_standout_glitch ? "true" : "false");		ptextln(temp);		generic_done_message(t, state, ch);	}}/***	subtest_mir(test_list, status, ch)****	(mir) move in insert mode*/static voidsubtest_mir(	struct test_list *t,	int *state,	int *ch){	int i;	char *s;	if (enter_insert_mode && exit_insert_mode && cursor_address) {		put_clear();		i = line_count;		put_str("\nXXX\nXXX\nXXX\nXXX");		tc_putp(enter_insert_mode);		s = tparm(cursor_address, i + 1, 0);		tputs(s, lines, tc_putch);		putchp('X');		s = tparm(cursor_address, i + 2, 1);		tputs(s, lines, tc_putch);		putchp('X');		s = tparm(cursor_address, i + 3, 2);		tputs(s, lines, tc_putch);		putchp('X');		s = tparm(cursor_address, i + 4, 3);		tputs(s, lines, tc_putch);		putchp('X');		tc_putp(exit_insert_mode);		put_newlines(2);		ptextln("If you see a 4 by 4 block of X's then (mir) should be true.");		sprintf(temp, "(mir) Move-in-insert-mode is %s in the data base",			move_insert_mode ? "true" : "false");		ptextln(temp);	} else {		ptext("(mir) Move-in-insert-mode not tested, ");		if (!enter_insert_mode) {			ptext("(smir) ");		}		if (!exit_insert_mode) {			ptext("(rmir) ");		}		if (!cursor_address) {			ptext("(cup) ");		}		ptext("not present.  ");	}	generic_done_message(t, state, ch);}/***	subtest_msgr(test_list, status, ch)****	(msgr) move in sgr mode*/static voidsubtest_msgr(	struct test_list *t,	int *state,	int *ch){	int i;	if (cursor_address &&		((enter_standout_mode && exit_standout_mode) ||		(enter_alt_charset_mode && exit_alt_charset_mode))) {		put_crlf();		i = line_count + 1;		tputs(tparm(cursor_address, i, 0), lines, tc_putch);		put_mode(enter_alt_charset_mode);		put_crlf();		/*		   some versions of the wy-120 can not clear lines or		   screen when in alt charset mode.  If (el) and (ed)		   are defined then I can test them.  If they are not		   defined then they can not break (msgr)		*/		tc_putp(clr_eos);		tc_putp(clr_eol);		put_mode(exit_alt_charset_mode);		put_mode(enter_standout_mode);		putchp('X');		tputs(tparm(cursor_address, i + 2, 1), lines, tc_putch);		putchp('X');		tputs(tparm(cursor_address, i + 3, 2), lines, tc_putch);		putchp('X');		tputs(tparm(cursor_address, i + 4, 3), lines, tc_putch);		putchp('X');		put_mode(exit_standout_mode);		put_crlf();		tc_putp(clr_eos);	/* OK if missing */		put_crlf();		ptextln("If you see a diagonal line of standout X's then (msgr) should be true.  If any of the blanks are standout then (msgr) should be false.");		sprintf(temp, "(msgr) Move-in-SGR-mode is %s in the data base",			move_standout_mode ? "true" : "false");		ptextln(temp);	} else {		ptextln("(smso) (rmso) (smacs) (rmacs) missing; (msgr) Move-in-SGR-mode not tested.");	}	generic_done_message(t, state, ch);}/***	subtest_in(test_list, status, ch)****	(in) insert null glitch*/static voidsubtest_in(	struct test_list *t,	int *state,	int *ch){	if (enter_insert_mode && exit_insert_mode) {		ptextln("\nTesting (in) with (smir) and (rmir)");		putln("\tIf these two lines line up ...");		put_str("\tIf these two lines line up ...");		put_cr();		tc_putp(enter_insert_mode);		putchp(' ');		tc_putp(exit_insert_mode);		ptext("\nthen (in) should be set.  ");		sprintf(temp,			"(in) Insert-null-glitch is %s in the data base.",			insert_null_glitch ? "true" : "false");		ptextln(temp);		generic_done_message(t, state, ch);	}}/***	subtest_dadb(test_list, status, ch)****	(da) (db) data above, (db) data below*/static voidsubtest_dadb(	struct test_list *t,	int *state,	int *ch){	if (can_clear_screen && scroll_reverse && scroll_forward) {		put_clear();		if (scroll_reverse)			ptext("(da) Data-above should be set\r");		home_down();		if (scroll_forward)			ptext("(db) Data-below should be set\r");		tc_putp(scroll_forward);		go_home();		tc_putp(scroll_reverse);		tc_putp(scroll_reverse);		home_down();		tc_putp(scroll_forward);		go_home();		ptextln("\n\n\n\n\nIf the top line is blank then (da) should be false.");		ptextln("If the bottom line is blank then (db) should be false.");		sprintf(temp, "\n(da) Data-above is %s, and (db) Data-below is %s, in the data base.",			memory_above ? "true" : "false",			memory_below ? "true" : "false");		ptextln(temp);		line_count = lines;	} else {		ptextln("(da) Data-above, (db) Data-below not tested, scrolls or (clear) is missing.");	}	generic_done_message(t, state, ch);}

⌨️ 快捷键说明

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