1b725ae77Skettenis /* This testcase is part of GDB, the GNU debugger.
2b725ae77Skettenis
3b725ae77Skettenis Copyright 2001, 2004 Free Software Foundation, Inc.
4b725ae77Skettenis
5b725ae77Skettenis Contributed by Red Hat, originally written by Jim Blandy.
6b725ae77Skettenis
7b725ae77Skettenis This program is free software; you can redistribute it and/or modify
8b725ae77Skettenis it under the terms of the GNU General Public License as published by
9b725ae77Skettenis the Free Software Foundation; either version 2 of the License, or
10b725ae77Skettenis (at your option) any later version.
11b725ae77Skettenis
12b725ae77Skettenis This program is distributed in the hope that it will be useful,
13b725ae77Skettenis but WITHOUT ANY WARRANTY; without even the implied warranty of
14b725ae77Skettenis MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15b725ae77Skettenis GNU General Public License for more details.
16b725ae77Skettenis
17b725ae77Skettenis You should have received a copy of the GNU General Public License
18b725ae77Skettenis along with this program; if not, write to the Free Software
19b725ae77Skettenis Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20b725ae77Skettenis
21b725ae77Skettenis Please email any bugs, comments, and/or additions to this file to:
22b725ae77Skettenis bug-gdb@gnu.org */
23b725ae77Skettenis
24b725ae77Skettenis #include <stdio.h>
25*11efff7fSkettenis #include <stdlib.h>
26b725ae77Skettenis #include <string.h>
27b725ae77Skettenis
28b725ae77Skettenis
29b725ae77Skettenis /* X_string is a null-terminated string in the X charset whose
30b725ae77Skettenis elements are as follows. X should be the name the `set charset'
31b725ae77Skettenis command uses for the character set, in lower-case, with any
32b725ae77Skettenis non-identifier characters replaced with underscores. Where a
33b725ae77Skettenis character set doesn't have the given character, the string should
34b725ae77Skettenis contain the character 'x'.
35b725ae77Skettenis
36b725ae77Skettenis [0] --- the `alert' character, '\a'
37b725ae77Skettenis [1] --- the `backspace' character, '\b'
38b725ae77Skettenis [2] --- the `form feed' character, '\f'
39b725ae77Skettenis [3] --- the `line feed' character, '\n'
40b725ae77Skettenis [4] --- the `carriage return' character, '\r'
41b725ae77Skettenis [5] --- the `horizontal tab' character, '\t'
42b725ae77Skettenis [6] --- the `vertical tab' character, '\v'
43b725ae77Skettenis [7 .. 32] --- the uppercase letters A-Z
44b725ae77Skettenis [33 .. 58] --- the lowercase letters a-z
45b725ae77Skettenis [59 .. 68] --- the digits 0-9
46b725ae77Skettenis [69] --- the `cent' character
47b725ae77Skettenis [70] --- a control character with no defined backslash escape
48b725ae77Skettenis
49b725ae77Skettenis Feel free to extend these as you like. */
50b725ae77Skettenis
51b725ae77Skettenis #define NUM_CHARS (71)
52b725ae77Skettenis
53b725ae77Skettenis char ascii_string[NUM_CHARS];
54b725ae77Skettenis char iso_8859_1_string[NUM_CHARS];
55b725ae77Skettenis char ebcdic_us_string[NUM_CHARS];
56b725ae77Skettenis char ibm1047_string[NUM_CHARS];
57b725ae77Skettenis
58b725ae77Skettenis
59b725ae77Skettenis void
init_string(char string[],char x,char alert,char backspace,char form_feed,char line_feed,char carriage_return,char horizontal_tab,char vertical_tab,char cent,char misc_ctrl)60b725ae77Skettenis init_string (char string[],
61b725ae77Skettenis char x,
62b725ae77Skettenis char alert, char backspace, char form_feed,
63b725ae77Skettenis char line_feed, char carriage_return, char horizontal_tab,
64b725ae77Skettenis char vertical_tab, char cent, char misc_ctrl)
65b725ae77Skettenis {
66b725ae77Skettenis memset (string, x, NUM_CHARS);
67b725ae77Skettenis string[0] = alert;
68b725ae77Skettenis string[1] = backspace;
69b725ae77Skettenis string[2] = form_feed;
70b725ae77Skettenis string[3] = line_feed;
71b725ae77Skettenis string[4] = carriage_return;
72b725ae77Skettenis string[5] = horizontal_tab;
73b725ae77Skettenis string[6] = vertical_tab;
74b725ae77Skettenis string[69] = cent;
75b725ae77Skettenis string[70] = misc_ctrl;
76b725ae77Skettenis }
77b725ae77Skettenis
78b725ae77Skettenis
79b725ae77Skettenis void
fill_run(char string[],int start,int len,int first)80b725ae77Skettenis fill_run (char string[], int start, int len, int first)
81b725ae77Skettenis {
82b725ae77Skettenis int i;
83b725ae77Skettenis
84b725ae77Skettenis for (i = 0; i < len; i++)
85b725ae77Skettenis string[start + i] = first + i;
86b725ae77Skettenis }
87b725ae77Skettenis
88b725ae77Skettenis
main()89b725ae77Skettenis int main ()
90b725ae77Skettenis {
91b725ae77Skettenis #ifdef usestubs
92b725ae77Skettenis set_debug_traps();
93b725ae77Skettenis breakpoint();
94b725ae77Skettenis #endif
95b725ae77Skettenis (void) malloc (1);
96b725ae77Skettenis /* Initialize ascii_string. */
97b725ae77Skettenis init_string (ascii_string,
98b725ae77Skettenis 120,
99b725ae77Skettenis 7, 8, 12,
100b725ae77Skettenis 10, 13, 9,
101b725ae77Skettenis 11, 120, 17);
102b725ae77Skettenis fill_run (ascii_string, 7, 26, 65);
103b725ae77Skettenis fill_run (ascii_string, 33, 26, 97);
104b725ae77Skettenis fill_run (ascii_string, 59, 10, 48);
105b725ae77Skettenis
106b725ae77Skettenis /* Initialize iso_8859_1_string. */
107b725ae77Skettenis init_string (iso_8859_1_string,
108b725ae77Skettenis 120,
109b725ae77Skettenis 7, 8, 12,
110b725ae77Skettenis 10, 13, 9,
111b725ae77Skettenis 11, 162, 17);
112b725ae77Skettenis fill_run (iso_8859_1_string, 7, 26, 65);
113b725ae77Skettenis fill_run (iso_8859_1_string, 33, 26, 97);
114b725ae77Skettenis fill_run (iso_8859_1_string, 59, 10, 48);
115b725ae77Skettenis
116b725ae77Skettenis /* Initialize ebcdic_us_string. */
117b725ae77Skettenis init_string (ebcdic_us_string,
118b725ae77Skettenis 167,
119b725ae77Skettenis 47, 22, 12,
120b725ae77Skettenis 37, 13, 5,
121b725ae77Skettenis 11, 74, 17);
122b725ae77Skettenis /* In EBCDIC, the upper-case letters are broken into three separate runs. */
123b725ae77Skettenis fill_run (ebcdic_us_string, 7, 9, 193);
124b725ae77Skettenis fill_run (ebcdic_us_string, 16, 9, 209);
125b725ae77Skettenis fill_run (ebcdic_us_string, 25, 8, 226);
126b725ae77Skettenis /* The lower-case letters are, too. */
127b725ae77Skettenis fill_run (ebcdic_us_string, 33, 9, 129);
128b725ae77Skettenis fill_run (ebcdic_us_string, 42, 9, 145);
129b725ae77Skettenis fill_run (ebcdic_us_string, 51, 8, 162);
130b725ae77Skettenis /* The digits, at least, are contiguous. */
131b725ae77Skettenis fill_run (ebcdic_us_string, 59, 10, 240);
132b725ae77Skettenis
133b725ae77Skettenis /* Initialize ibm1047_string. */
134b725ae77Skettenis init_string (ibm1047_string,
135b725ae77Skettenis 167,
136b725ae77Skettenis 47, 22, 12,
137b725ae77Skettenis 37, 13, 5,
138b725ae77Skettenis 11, 74, 17);
139b725ae77Skettenis /* In EBCDIC, the upper-case letters are broken into three separate runs. */
140b725ae77Skettenis fill_run (ibm1047_string, 7, 9, 193);
141b725ae77Skettenis fill_run (ibm1047_string, 16, 9, 209);
142b725ae77Skettenis fill_run (ibm1047_string, 25, 8, 226);
143b725ae77Skettenis /* The lower-case letters are, too. */
144b725ae77Skettenis fill_run (ibm1047_string, 33, 9, 129);
145b725ae77Skettenis fill_run (ibm1047_string, 42, 9, 145);
146b725ae77Skettenis fill_run (ibm1047_string, 51, 8, 162);
147b725ae77Skettenis /* The digits, at least, are contiguous. */
148b725ae77Skettenis fill_run (ibm1047_string, 59, 10, 240);
149b725ae77Skettenis
150b725ae77Skettenis puts ("All set!"); /* all strings initialized */
151b725ae77Skettenis }
152