Linux node5458.myfcloud.com 6.10.2-x86_64-linode165 #1 SMP PREEMPT_DYNAMIC Tue Jul 30 15:03:21 EDT 2024 x86_64
Apache
: 45.79.123.194 | : 3.17.162.245
16 Domain
7.4.33
addify5
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
ncurses-devel-5.9 /
test /
[ HOME SHELL ]
Name
Size
Permission
Action
package
[ DIR ]
drwxr-xr-x
Makefile.in
4.92
KB
-rw-r--r--
README
35.89
KB
-rw-r--r--
aclocal.m4
108.83
KB
-rw-r--r--
background.c
6.84
KB
-rw-r--r--
blue.c
12.4
KB
-rw-r--r--
bs.6
3.91
KB
-rw-r--r--
bs.c
29.95
KB
-rw-r--r--
bulgarian-utf8.txt
340
B
-rw-r--r--
cardfile.c
13.26
KB
-rw-r--r--
cardfile.dat
394
B
-rw-r--r--
chgat.c
9.03
KB
-rw-r--r--
clip_printw.c
9.1
KB
-rw-r--r--
color_name.h
3.32
KB
-rw-r--r--
color_set.c
3.25
KB
-rw-r--r--
configure
449.42
KB
-rw-r--r--
configure.in
9.57
KB
-rw-r--r--
demo_altkeys.c
4.77
KB
-rw-r--r--
demo_defkey.c
7.4
KB
-rw-r--r--
demo_forms.c
13.01
KB
-rw-r--r--
demo_keyok.c
3.24
KB
-rw-r--r--
demo_menus.c
18.74
KB
-rw-r--r--
demo_panels.c
16.89
KB
-rw-r--r--
demo_termcap.c
10.09
KB
-rw-r--r--
demo_terminfo.c
10.05
KB
-rw-r--r--
ditto.c
11.04
KB
-rw-r--r--
dots.c
4.52
KB
-rw-r--r--
dots_mvcur.c
4.66
KB
-rw-r--r--
echochar.c
4.35
KB
-rw-r--r--
edit_field.c
11.21
KB
-rw-r--r--
edit_field.h
2.57
KB
-rw-r--r--
filter.c
4.97
KB
-rw-r--r--
firework.c
5.53
KB
-rw-r--r--
firstlast.c
3.72
KB
-rw-r--r--
foldkeys.c
7.44
KB
-rw-r--r--
gdc.6
3.03
KB
-rw-r--r--
gdc.c
8.74
KB
-rw-r--r--
hanoi.c
8.58
KB
-rw-r--r--
hashtest.c
6.58
KB
-rw-r--r--
inch_wide.c
7.21
KB
-rw-r--r--
inchs.c
7.15
KB
-rw-r--r--
ins_wide.c
12.25
KB
-rw-r--r--
insdelln.c
9.16
KB
-rw-r--r--
inserts.c
10.62
KB
-rw-r--r--
install-sh
6.96
KB
-rw-r--r--
key_names.c
3.22
KB
-rw-r--r--
keynames.c
3.07
KB
-rw-r--r--
knight.c
18.54
KB
-rw-r--r--
linedata.h
3.16
KB
-rw-r--r--
linux-color.dat
2.56
KB
-rw-r--r--
listused.sh
5.46
KB
-rw-r--r--
lrtest.c
5.24
KB
-rw-r--r--
make-tar.sh
4.8
KB
-rw-r--r--
mk-test.awk
4.42
KB
-rw-r--r--
modules
5.07
KB
-rw-r--r--
movewindow.c
16.44
KB
-rw-r--r--
ncurses.c
154.98
KB
-rw-r--r--
ncurses_tst.hin
2.88
KB
-rw-r--r--
newdemo.c
7.38
KB
-rw-r--r--
programs
5.28
KB
-rw-r--r--
railroad.c
5.66
KB
-rw-r--r--
rain.c
8.44
KB
-rw-r--r--
redraw.c
4.66
KB
-rw-r--r--
savescreen.c
7.49
KB
-rw-r--r--
savescreen.sh
2.66
KB
-rw-r--r--
tclock.c
5.26
KB
-rw-r--r--
test.priv.h
19.55
KB
-rw-r--r--
test_add_wchstr.c
14.08
KB
-rw-r--r--
test_addchstr.c
12.14
KB
-rw-r--r--
test_addstr.c
10.3
KB
-rw-r--r--
test_addwstr.c
12.37
KB
-rw-r--r--
test_arrays.c
3.83
KB
-rw-r--r--
test_get_wstr.c
8.94
KB
-rw-r--r--
test_getstr.c
8.88
KB
-rw-r--r--
test_instr.c
6.49
KB
-rw-r--r--
test_inwstr.c
6.69
KB
-rw-r--r--
test_opaque.c
10.42
KB
-rw-r--r--
test_vid_puts.c
3.97
KB
-rw-r--r--
test_vidputs.c
3.92
KB
-rw-r--r--
testaddch.c
3.46
KB
-rw-r--r--
testcurs.c
16.69
KB
-rw-r--r--
testscanw.c
2.88
KB
-rw-r--r--
tracemunch
5.01
KB
-rw-r--r--
view.c
13.84
KB
-rw-r--r--
widechars-utf8.txt
389
B
-rw-r--r--
widechars.h
3.19
KB
-rw-r--r--
worm.c
14.01
KB
-rw-r--r--
xmas.c
33.47
KB
-rw-r--r--
xterm-16color.dat
2.99
KB
-rw-r--r--
xterm-256color.dat
6.88
KB
-rw-r--r--
xterm-88color.dat
4.11
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : test_addchstr.c
/**************************************************************************** * Copyright (c) 2009-2010,2012 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * * "Software"), to deal in the Software without restriction, including * * without limitation the rights to use, copy, modify, merge, publish, * * distribute, distribute with modifications, sublicense, and/or sell * * copies of the Software, and to permit persons to whom the Software is * * furnished to do so, subject to the following conditions: * * * * The above copyright notice and this permission notice shall be included * * in all copies or substantial portions of the Software. * * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * * * Except as contained in this notice, the name(s) of the above copyright * * holders shall not be used in advertising or otherwise to promote the * * sale, use or other dealings in this Software without prior written * * authorization. * ****************************************************************************/ /* * $Id: test_addchstr.c,v 1.18 2012/12/16 00:36:27 tom Exp $ * * Demonstrate the waddchstr() and waddch functions. * Thomas Dickey - 2009/9/12 */ #include <test.priv.h> #include <linedata.h> #undef MvAddStr #undef MvWAddStr #define AddNStr addchnstr #define AddStr addchstr #define MvAddNStr (void) mvaddchnstr #define MvAddStr (void) mvaddchstr #define MvWAddNStr (void) mvwaddchnstr #define MvWAddStr (void) mvwaddchstr #define WAddNStr waddchnstr #define WAddStr waddchstr #define AddCh addch #define WAddCh waddch #define MY_TABSIZE 8 typedef enum { oDefault = 0, oMove = 1, oWindow = 2, oMoveWindow = 3 } Options; static bool m_opt = FALSE; static bool pass_ctls = FALSE; static bool w_opt = FALSE; static int n_opt = -1; static attr_t show_attr; static chtype *temp_buffer; static size_t temp_length; #define TempBuffer(source_cast) static size_t ChLen(const char *source) { size_t result = strlen(source); if (!pass_ctls) { size_t adjust = 0; size_t n; for (n = 0; n < result; ++n) { const char *s = unctrl(UChar(source[n])); if (s != 0) { adjust += (strlen(s) - 1); } } result += adjust; } return result; } static chtype * ChStr(const char *source) { if (source != 0) { size_t need = ChLen(source) + 1; int n = 0; if (need > temp_length) { temp_length = need * 2; temp_buffer = typeRealloc(chtype, temp_length, temp_buffer); if (!temp_buffer) failed("TempBuffer"); } do { const char *s; chtype ch = UChar(*source++); if (!pass_ctls && (s = unctrl(ch)) != 0) { while (*s != '\0') { temp_buffer[n++] = UChar(*s++); } } else { temp_buffer[n++] = ch; } } while (source[0] != 0); temp_buffer[n] = 0; } else if (temp_buffer != 0) { free(temp_buffer); temp_buffer = 0; temp_length = 0; } return temp_buffer; } /* color the strings drawn in the workspace */ static chtype * ChStr2(const char *source) { size_t len = ChLen(source); size_t n; chtype *result = ChStr(source); for (n = 0; n < len; ++n) { result[n] |= show_attr; } return result; } static void legend(WINDOW *win, int level, Options state, char *buffer, int length) { const char *showstate; switch (state) { default: case oDefault: showstate = ""; break; case oMove: showstate = " (mvXXX)"; break; case oWindow: showstate = " (winXXX)"; break; case oMoveWindow: showstate = " (mvwinXXX)"; break; } wmove(win, 0, 0); wprintw(win, "The Strings/Chars displays should match. Enter any characters, except:\n"); wprintw(win, "down-arrow or ^N to repeat on next line, ^W for inner window, ESC to exit.\n"); wclrtoeol(win); wprintw(win, "Level %d,%s added %d characters <%s>", level, showstate, length, buffer); } static int ColOf(char *buffer, int length, int margin) { int n; int result; for (n = 0, result = margin + 1; n < length; ++n) { int ch = UChar(buffer[n]); switch (ch) { case '\n': /* actually newline should clear the remainder of the line * and move to the next line - but that seems a little awkward * in this example. */ case '\r': result = 0; break; case '\b': if (result > 0) --result; break; case '\t': result += (MY_TABSIZE - (result % MY_TABSIZE)); break; case '\177': result += 2; break; default: ++result; if (ch < 32) ++result; break; } } return result; } #define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n))) static void test_adds(int level) { static bool first = TRUE; int ch; int limit; int row = 1; int col; int row2, col2; int length; char buffer[BUFSIZ]; WINDOW *look = 0; WINDOW *work = 0; WINDOW *show = 0; int margin = (2 * MY_TABSIZE) - 1; Options option = (Options) ((unsigned) (m_opt ? oMove : oDefault) | (unsigned) ((w_opt || (level > 0)) ? oWindow : oDefault)); if (first) { static char cmd[80]; setlocale(LC_ALL, ""); putenv(strcpy(cmd, "TABSIZE=8")); initscr(); (void) cbreak(); /* take input chars one at a time, no wait for \n */ (void) noecho(); /* don't echo input */ keypad(stdscr, TRUE); /* * Show the characters added in color, to distinguish from those that * are shifted. */ if (has_colors()) { start_color(); init_pair(1, COLOR_WHITE, COLOR_BLUE); } } limit = LINES - 5; if (level > 0) { look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1); work = newwin(limit - 2, COLS - (2 * level), 1, level); show = newwin(4, COLS, limit + 1, 0); box(look, 0, 0); wnoutrefresh(look); limit -= 2; } else { work = stdscr; show = derwin(stdscr, 4, COLS, limit + 1, 0); } keypad(work, TRUE); for (col = margin + 1; col < COLS; col += MY_TABSIZE) MvWVLine(work, row, col, '.', limit - 2); MvWVLine(work, row, margin, ACS_VLINE, limit - 2); MvWVLine(work, row, margin + 1, ACS_VLINE, limit - 2); limit /= 2; MvWAddChStr(work, 1, 2, ChStr("String")); MvWAddChStr(work, limit + 1, 2, ChStr("Chars")); wnoutrefresh(work); buffer[length = 0] = '\0'; legend(show, level, option, buffer, length); wnoutrefresh(show); doupdate(); if (has_colors()) { show_attr = (attr_t) COLOR_PAIR(1); wbkgdset(work, show_attr | ' '); } else { show_attr = A_STANDOUT; } while ((ch = read_linedata(work)) != ERR && !isQUIT(ch)) { wmove(work, row, margin + 1); switch (ch) { case key_RECUR: test_adds(level + 1); if (look) touchwin(look); touchwin(work); touchwin(show); if (look) wnoutrefresh(look); wnoutrefresh(work); wnoutrefresh(show); doupdate(); break; case key_NEWLINE: if (row < limit) { ++row; /* put the whole string in, all at once */ col2 = margin + 1; switch (option) { case oDefault: if (n_opt > 1) { for (col = 0; col < length; col += n_opt) { col2 = ColOf(buffer, col, margin); if (move(row, col2) != ERR) { AddNStr(ChStr2(buffer + col), LEN(col)); } } } else { if (move(row, col2) != ERR) { AddStr(ChStr2(buffer)); } } break; case oMove: if (n_opt > 1) { for (col = 0; col < length; col += n_opt) { col2 = ColOf(buffer, col, margin); MvAddNStr(row, col2, ChStr2(buffer + col), LEN(col)); } } else { MvAddStr(row, col2, ChStr2(buffer)); } break; case oWindow: if (n_opt > 1) { for (col = 0; col < length; col += n_opt) { col2 = ColOf(buffer, col, margin); if (wmove(work, row, col2) != ERR) { WAddNStr(work, ChStr2(buffer + col), LEN(col)); } } } else { if (wmove(work, row, col2) != ERR) { WAddStr(work, ChStr2(buffer)); } } break; case oMoveWindow: if (n_opt > 1) { for (col = 0; col < length; col += n_opt) { col2 = ColOf(buffer, col, margin); MvWAddNStr(work, row, col2, ChStr2(buffer + col), LEN(col)); } } else { MvWAddStr(work, row, col2, ChStr2(buffer)); } break; } /* do the corresponding single-character add */ row2 = limit + row; for (col = 0; col < length; ++col) { col2 = ColOf(buffer, col, margin); switch (option) { case oDefault: if (move(row2, col2) != ERR) { AddCh(UChar(buffer[col])); } break; case oMove: MvAddCh(row2, col2, UChar(buffer[col])); break; case oWindow: if (wmove(work, row2, col2) != ERR) { WAddCh(work, UChar(buffer[col])); } break; case oMoveWindow: MvWAddCh(work, row2, col2, UChar(buffer[col])); break; } } } else { beep(); } break; case KEY_BACKSPACE: ch = '\b'; /* FALLTHRU */ default: if (ch <= 0 || ch > 255) { beep(); break; } buffer[length++] = (char) ch; buffer[length] = '\0'; /* put the string in, one character at a time */ col = ColOf(buffer, length - 1, margin); switch (option) { case oDefault: if (move(row, col) != ERR) { AddStr(ChStr2(buffer + length - 1)); } break; case oMove: MvAddStr(row, col, ChStr2(buffer + length - 1)); break; case oWindow: if (wmove(work, row, col) != ERR) { WAddStr(work, ChStr2(buffer + length - 1)); } break; case oMoveWindow: MvWAddStr(work, row, col, ChStr2(buffer + length - 1)); break; } /* do the corresponding single-character add */ switch (option) { case oDefault: if (move(limit + row, col) != ERR) { AddCh(UChar(ch)); } break; case oMove: MvAddCh(limit + row, col, UChar(ch)); break; case oWindow: if (wmove(work, limit + row, col) != ERR) { WAddCh(work, UChar(ch)); } break; case oMoveWindow: MvWAddCh(work, limit + row, col, UChar(ch)); break; } wnoutrefresh(work); legend(show, level, option, buffer, length); wnoutrefresh(show); doupdate(); break; } } if (level > 0) { delwin(work); delwin(look); } delwin(show); } static void usage(void) { static const char *tbl[] = { "Usage: test_addchstr [options]" ,"" ,"Options:" ," -f FILE read data from given file" ," -n NUM limit string-adds to NUM bytes on ^N replay" ," -m perform wmove/move separately from add-functions" ," -p pass-thru control characters without using unctrl()" ," -w use window-parameter even when stdscr would be implied" }; unsigned n; for (n = 0; n < SIZEOF(tbl); ++n) fprintf(stderr, "%s\n", tbl[n]); ExitProgram(EXIT_FAILURE); } int main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) { int ch; setlocale(LC_ALL, ""); while ((ch = getopt(argc, argv, "f:mn:pw")) != -1) { switch (ch) { case 'f': init_linedata(optarg); break; case 'm': m_opt = TRUE; break; case 'n': n_opt = atoi(optarg); if (n_opt == 0) n_opt = -1; break; case 'p': pass_ctls = TRUE; break; case 'w': w_opt = TRUE; break; default: usage(); break; } } if (optind < argc) usage(); test_adds(0); endwin(); ExitProgram(EXIT_SUCCESS); }
Close