# This testcase is part of GDB, the GNU debugger.

# Copyright 1992, 1994, 1995, 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2007
# Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@gnu.org

# This file was written by Fred Fish. (fnf@cygnus.com)

if $tracelevel then {
	strace $tracelevel
}

set prms_id 0
set bug_id 0

set testfile "printcmds"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     untested printcmds.exp
     return -1
}

# Set the current language to C.  This counts as a test.  If it
# fails, then we skip the other tests.

proc set_lang_c {} {
    global gdb_prompt

    if [gdb_test "set language c" "" "set language c"] {
	return 0
    }

    if [gdb_test "show language" ".* source language is \"c\".*"] {
	return 0
    }
    return 1;
}

proc test_integer_literals_accepted {} {
    global gdb_prompt

    # Test various decimal values.

    gdb_test "p 123" " = 123"
    gdb_test "p -123" " = -123"
    gdb_test "p/d 123" " = 123"

    # Test various octal values.

    gdb_test "p 0123" " = 83"
    gdb_test "p 00123" " = 83"
    gdb_test "p -0123" " = -83"
    gdb_test "p/o 0123" " = 0123"

    # Test various hexadecimal values.

    gdb_test "p 0x123" " = 291"
    gdb_test "p -0x123" " = -291"
    gdb_test "p 0x0123" " = 291"
    gdb_test "p -0x0123" " = -291"
    gdb_test "p 0xABCDEF" " = 11259375"
    gdb_test "p 0xabcdef" " = 11259375"
    gdb_test "p 0xAbCdEf" " = 11259375"
    gdb_test "p/x 0x123" " = 0x123"
}

proc test_character_literals_accepted {} {
    global gdb_prompt

    gdb_test "p 'a'" " = 97 'a'"
    gdb_test "p/c 'a'" " = 97 'a'"
    gdb_test "p/x 'a'" " = 0x61"
    gdb_test "p/d 'a'" " = 97"
    gdb_test "p/t 'a'" " = 1100001"
    gdb_test "p '\\141'" " = 97 'a'"
    gdb_test "p/x '\\377'" " = 0xff"
    # Note "p '\''" => "= 39 '\''"
    gdb_test "p '\\''" " = 39 '\\\\''"
    # Note "p '\\'" => "= 92 '\\'"
    gdb_test "p '\\\\'" " = 92 '\\\\\\\\'"
}

proc test_integer_literals_rejected {} {
    global gdb_prompt

    test_print_reject "p 0x" 
    gdb_test "p ''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
    gdb_test "p '''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
    test_print_reject "p '\\'"

    # Note that this turns into "p '\\\'" at gdb's input.
    test_print_reject "p '\\\\\\'"

    # Test various decimal values.

    test_print_reject "p DEADBEEF"

    # Gdb currently fails this test for all configurations.  The C
    # lexer thinks that 123DEADBEEF is a floating point number, but
    # then fails to notice that atof() only eats the 123 part.
    # FIXME:  This should be put into PRMS.
    # Fixed, 4/25/97, by Bob Manson.

    test_print_reject "p 123DEADBEEF"
    test_print_reject "p 123foobar.bazfoo3"
    test_print_reject "p 123EEEEEEEEEEEEEEEEE33333k333"
    gdb_test "p 123.4+56.7" "180.(099\[0-9]*|100\[0-9\]*)" "check for floating addition"

    # Test various octal values.

    test_print_reject "p 09" 
    test_print_reject "p 079" 

    # Test various hexadecimal values.

    test_print_reject "p 0xG" 
    test_print_reject "p 0xAG" 
}

proc test_print_all_chars {} {
    global gdb_prompt

    gdb_test "p ctable1\[0\]"   " = 0 '\\\\0'"
    gdb_test "p ctable1\[1\]"   " = 1 '\\\\001'"
    gdb_test "p ctable1\[2\]"   " = 2 '\\\\002'"
    gdb_test "p ctable1\[3\]"   " = 3 '\\\\003'"
    gdb_test "p ctable1\[4\]"   " = 4 '\\\\004'"
    gdb_test "p ctable1\[5\]"   " = 5 '\\\\005'"
    gdb_test "p ctable1\[6\]"   " = 6 '\\\\006'"
    gdb_test "p ctable1\[7\]"   " = 7 '\\\\a'"
    gdb_test "p ctable1\[8\]"   " = 8 '\\\\b'"
    gdb_test "p ctable1\[9\]"   " = 9 '\\\\t'"
    gdb_test "p ctable1\[10\]"  " = 10 '\\\\n'"
    gdb_test "p ctable1\[11\]"  " = 11 '\\\\v'"
    gdb_test "p ctable1\[12\]"  " = 12 '\\\\f'"
    gdb_test "p ctable1\[13\]"  " = 13 '\\\\r'"
    gdb_test "p ctable1\[14\]"  " = 14 '\\\\016'"
    gdb_test "p ctable1\[15\]"  " = 15 '\\\\017'"
    gdb_test "p ctable1\[16\]"  " = 16 '\\\\020'"
    gdb_test "p ctable1\[17\]"  " = 17 '\\\\021'"
    gdb_test "p ctable1\[18\]"  " = 18 '\\\\022'"
    gdb_test "p ctable1\[19\]"  " = 19 '\\\\023'"
    gdb_test "p ctable1\[20\]"  " = 20 '\\\\024'"
    gdb_test "p ctable1\[21\]"  " = 21 '\\\\025'"
    gdb_test "p ctable1\[22\]"  " = 22 '\\\\026'"
    gdb_test "p ctable1\[23\]"  " = 23 '\\\\027'"
    gdb_test "p ctable1\[24\]"  " = 24 '\\\\030'"
    gdb_test "p ctable1\[25\]"  " = 25 '\\\\031'"
    gdb_test "p ctable1\[26\]"  " = 26 '\\\\032'"
    gdb_test "p ctable1\[27\]"  " = 27 '\\\\033'"
    gdb_test "p ctable1\[28\]"  " = 28 '\\\\034'"
    gdb_test "p ctable1\[29\]"  " = 29 '\\\\035'"
    gdb_test "p ctable1\[30\]"  " = 30 '\\\\036'"
    gdb_test "p ctable1\[31\]"  " = 31 '\\\\037'"
    gdb_test "p ctable1\[32\]"  " = 32 ' '"
    gdb_test "p ctable1\[33\]"  " = 33 '!'"
    gdb_test "p ctable1\[34\]"  " = 34 '\"'"
    gdb_test "p ctable1\[35\]"  " = 35 '#'"
    gdb_test "p ctable1\[36\]"  " = 36 '\\\$'"
    gdb_test "p ctable1\[37\]"  " = 37 '%'"
    gdb_test "p ctable1\[38\]"  " = 38 '&'"
    gdb_test "p ctable1\[39\]"  " = 39 '\\\\''"
    gdb_test "p ctable1\[40\]"  " = 40 '\\('"
    gdb_test "p ctable1\[41\]"  " = 41 '\\)'"
    gdb_test "p ctable1\[42\]"  " = 42 '\\*'"
    gdb_test "p ctable1\[43\]"  " = 43 '\\+'"
    gdb_test "p ctable1\[44\]"  " = 44 ','"
    gdb_test "p ctable1\[45\]"  " = 45 '-'"
    gdb_test "p ctable1\[46\]"  " = 46 '.'"
    gdb_test "p ctable1\[47\]"  " = 47 '/'"
    gdb_test "p ctable1\[48\]"  " = 48 '0'"
    gdb_test "p ctable1\[49\]"  " = 49 '1'"
    gdb_test "p ctable1\[50\]"  " = 50 '2'"
    gdb_test "p ctable1\[51\]"  " = 51 '3'"
    gdb_test "p ctable1\[52\]"  " = 52 '4'"
    gdb_test "p ctable1\[53\]"  " = 53 '5'"
    gdb_test "p ctable1\[54\]"  " = 54 '6'"
    gdb_test "p ctable1\[55\]"  " = 55 '7'"
    gdb_test "p ctable1\[56\]"  " = 56 '8'"
    gdb_test "p ctable1\[57\]"  " = 57 '9'"
    gdb_test "p ctable1\[58\]"  " = 58 ':'"
    gdb_test "p ctable1\[59\]"  " = 59 ';'"
    gdb_test "p ctable1\[60\]"  " = 60 '<'"
    gdb_test "p ctable1\[61\]"  " = 61 '='"
    gdb_test "p ctable1\[62\]"  " = 62 '>'"
    gdb_test "p ctable1\[63\]"  " = 63 '\\?'"
    gdb_test "p ctable1\[64\]"  " = 64 '@'"
    gdb_test "p ctable1\[65\]"  " = 65 'A'"
    gdb_test "p ctable1\[66\]"  " = 66 'B'"
    gdb_test "p ctable1\[67\]"  " = 67 'C'"
    gdb_test "p ctable1\[68\]"  " = 68 'D'"
    gdb_test "p ctable1\[69\]"  " = 69 'E'"
    gdb_test "p ctable1\[70\]"  " = 70 'F'"
    gdb_test "p ctable1\[71\]"  " = 71 'G'"
    gdb_test "p ctable1\[72\]"  " = 72 'H'"
    gdb_test "p ctable1\[73\]"  " = 73 'I'"
    gdb_test "p ctable1\[74\]"  " = 74 'J'"
    gdb_test "p ctable1\[75\]"  " = 75 'K'"
    gdb_test "p ctable1\[76\]"  " = 76 'L'"
    gdb_test "p ctable1\[77\]"  " = 77 'M'"
    gdb_test "p ctable1\[78\]"  " = 78 'N'"
    gdb_test "p ctable1\[79\]"  " = 79 'O'"
    gdb_test "p ctable1\[80\]"  " = 80 'P'"
    gdb_test "p ctable1\[81\]"  " = 81 'Q'"
    gdb_test "p ctable1\[82\]"  " = 82 'R'"
    gdb_test "p ctable1\[83\]"  " = 83 'S'"
    gdb_test "p ctable1\[84\]"  " = 84 'T'"
    gdb_test "p ctable1\[85\]"  " = 85 'U'"
    gdb_test "p ctable1\[86\]"  " = 86 'V'"
    gdb_test "p ctable1\[87\]"  " = 87 'W'"
    gdb_test "p ctable1\[88\]"  " = 88 'X'"
    gdb_test "p ctable1\[89\]"  " = 89 'Y'"
    gdb_test "p ctable1\[90\]"  " = 90 'Z'"
    gdb_test "p ctable1\[91\]"  " = 91 '\\\['"
    gdb_test "p ctable1\[92\]"  " = 92 '\\\\\\\\'"
    gdb_test "p ctable1\[93\]"  " = 93 '\\\]'"
    gdb_test "p ctable1\[94\]"  " = 94 '\\^'"
    gdb_test "p ctable1\[95\]"  " = 95 '_'"
    gdb_test "p ctable1\[96\]"  " = 96 '`'"
    gdb_test "p ctable1\[97\]"  " = 97 'a'"
    gdb_test "p ctable1\[98\]"  " = 98 'b'"
    gdb_test "p ctable1\[99\]"  " = 99 'c'"
    gdb_test "p ctable1\[100\]" " = 100 'd'"
    gdb_test "p ctable1\[101\]" " = 101 'e'"
    gdb_test "p ctable1\[102\]" " = 102 'f'"
    gdb_test "p ctable1\[103\]" " = 103 'g'"
    gdb_test "p ctable1\[104\]" " = 104 'h'"
    gdb_test "p ctable1\[105\]" " = 105 'i'"
    gdb_test "p ctable1\[106\]" " = 106 'j'"
    gdb_test "p ctable1\[107\]" " = 107 'k'"
    gdb_test "p ctable1\[108\]" " = 108 'l'"
    gdb_test "p ctable1\[109\]" " = 109 'm'"
    gdb_test "p ctable1\[110\]" " = 110 'n'"
    gdb_test "p ctable1\[111\]" " = 111 'o'"
    gdb_test "p ctable1\[112\]" " = 112 'p'"
    gdb_test "p ctable1\[113\]" " = 113 'q'"
    gdb_test "p ctable1\[114\]" " = 114 'r'"
    gdb_test "p ctable1\[115\]" " = 115 's'"
    gdb_test "p ctable1\[116\]" " = 116 't'"
    gdb_test "p ctable1\[117\]" " = 117 'u'"
    gdb_test "p ctable1\[118\]" " = 118 'v'"
    gdb_test "p ctable1\[119\]" " = 119 'w'"
    gdb_test "p ctable1\[120\]" " = 120 'x'"
    gdb_test "p ctable1\[121\]" " = 121 'y'"
    gdb_test "p ctable1\[122\]" " = 122 'z'"
    gdb_test "p ctable1\[123\]" " = 123 '\[{\]+'"
    gdb_test "p ctable1\[124\]" " = 124 '\[|\]+'"
    gdb_test "p ctable1\[125\]" " = 125 '\[}\]+'"
    gdb_test "p ctable1\[126\]" " = 126 '\[~\]'"
    gdb_test "p ctable1\[127\]" " = 127 '\\\\177'"
    gdb_test "p ctable1\[128\]" " = 128 '\\\\200'"
    gdb_test "p ctable1\[129\]" " = 129 '\\\\201'"
    gdb_test "p ctable1\[130\]" " = 130 '\\\\202'"
    gdb_test "p ctable1\[131\]" " = 131 '\\\\203'"
    gdb_test "p ctable1\[132\]" " = 132 '\\\\204'"
    gdb_test "p ctable1\[133\]" " = 133 '\\\\205'"
    gdb_test "p ctable1\[134\]" " = 134 '\\\\206'"
    gdb_test "p ctable1\[135\]" " = 135 '\\\\207'"
    gdb_test "p ctable1\[136\]" " = 136 '\\\\210'"
    gdb_test "p ctable1\[137\]" " = 137 '\\\\211'"
    gdb_test "p ctable1\[138\]" " = 138 '\\\\212'"
    gdb_test "p ctable1\[139\]" " = 139 '\\\\213'"
    gdb_test "p ctable1\[140\]" " = 140 '\\\\214'"
    gdb_test "p ctable1\[141\]" " = 141 '\\\\215'"
    gdb_test "p ctable1\[142\]" " = 142 '\\\\216'"
    gdb_test "p ctable1\[143\]" " = 143 '\\\\217'"
    gdb_test "p ctable1\[144\]" " = 144 '\\\\220'"
    gdb_test "p ctable1\[145\]" " = 145 '\\\\221'"
    gdb_test "p ctable1\[146\]" " = 146 '\\\\222'"
    gdb_test "p ctable1\[147\]" " = 147 '\\\\223'"
    gdb_test "p ctable1\[148\]" " = 148 '\\\\224'"
    gdb_test "p ctable1\[149\]" " = 149 '\\\\225'"
    gdb_test "p ctable1\[150\]" " = 150 '\\\\226'"
    gdb_test "p ctable1\[151\]" " = 151 '\\\\227'"
    gdb_test "p ctable1\[152\]" " = 152 '\\\\230'"
    gdb_test "p ctable1\[153\]" " = 153 '\\\\231'"
    gdb_test "p ctable1\[154\]" " = 154 '\\\\232'"
    gdb_test "p ctable1\[155\]" " = 155 '\\\\233'"
    gdb_test "p ctable1\[156\]" " = 156 '\\\\234'"
    gdb_test "p ctable1\[157\]" " = 157 '\\\\235'"
    gdb_test "p ctable1\[158\]" " = 158 '\\\\236'"
    gdb_test "p ctable1\[159\]" " = 159 '\\\\237'"
    gdb_test "p ctable1\[160\]" " = 160 '\\\\240'"
    gdb_test "p ctable1\[161\]" " = 161 '\\\\241'"
    gdb_test "p ctable1\[162\]" " = 162 '\\\\242'"
    gdb_test "p ctable1\[163\]" " = 163 '\\\\243'"
    gdb_test "p ctable1\[164\]" " = 164 '\\\\244'"
    gdb_test "p ctable1\[165\]" " = 165 '\\\\245'"
    gdb_test "p ctable1\[166\]" " = 166 '\\\\246'"
    gdb_test "p ctable1\[167\]" " = 167 '\\\\247'"
    gdb_test "p ctable1\[168\]" " = 168 '\\\\250'"
    gdb_test "p ctable1\[169\]" " = 169 '\\\\251'"
    gdb_test "p ctable1\[170\]" " = 170 '\\\\252'"
    gdb_test "p ctable1\[171\]" " = 171 '\\\\253'"
    gdb_test "p ctable1\[172\]" " = 172 '\\\\254'"
    gdb_test "p ctable1\[173\]" " = 173 '\\\\255'"
    gdb_test "p ctable1\[174\]" " = 174 '\\\\256'"
    gdb_test "p ctable1\[175\]" " = 175 '\\\\257'"
    gdb_test "p ctable1\[176\]" " = 176 '\\\\260'"
    gdb_test "p ctable1\[177\]" " = 177 '\\\\261'"
    gdb_test "p ctable1\[178\]" " = 178 '\\\\262'"
    gdb_test "p ctable1\[179\]" " = 179 '\\\\263'"
    gdb_test "p ctable1\[180\]" " = 180 '\\\\264'"
    gdb_test "p ctable1\[181\]" " = 181 '\\\\265'"
    gdb_test "p ctable1\[182\]" " = 182 '\\\\266'"
    gdb_test "p ctable1\[183\]" " = 183 '\\\\267'"
    gdb_test "p ctable1\[184\]" " = 184 '\\\\270'"
    gdb_test "p ctable1\[185\]" " = 185 '\\\\271'"
    gdb_test "p ctable1\[186\]" " = 186 '\\\\272'"
    gdb_test "p ctable1\[187\]" " = 187 '\\\\273'"
    gdb_test "p ctable1\[188\]" " = 188 '\\\\274'"
    gdb_test "p ctable1\[189\]" " = 189 '\\\\275'"
    gdb_test "p ctable1\[190\]" " = 190 '\\\\276'"
    gdb_test "p ctable1\[191\]" " = 191 '\\\\277'"
    gdb_test "p ctable1\[192\]" " = 192 '\\\\300'"
    gdb_test "p ctable1\[193\]" " = 193 '\\\\301'"
    gdb_test "p ctable1\[194\]" " = 194 '\\\\302'"
    gdb_test "p ctable1\[195\]" " = 195 '\\\\303'"
    gdb_test "p ctable1\[196\]" " = 196 '\\\\304'"
    gdb_test "p ctable1\[197\]" " = 197 '\\\\305'"
    gdb_test "p ctable1\[198\]" " = 198 '\\\\306'"
    gdb_test "p ctable1\[199\]" " = 199 '\\\\307'"
    gdb_test "p ctable1\[200\]" " = 200 '\\\\310'"
    gdb_test "p ctable1\[201\]" " = 201 '\\\\311'"
    gdb_test "p ctable1\[202\]" " = 202 '\\\\312'"
    gdb_test "p ctable1\[203\]" " = 203 '\\\\313'"
    gdb_test "p ctable1\[204\]" " = 204 '\\\\314'"
    gdb_test "p ctable1\[205\]" " = 205 '\\\\315'"
    gdb_test "p ctable1\[206\]" " = 206 '\\\\316'"
    gdb_test "p ctable1\[207\]" " = 207 '\\\\317'"
    gdb_test "p ctable1\[208\]" " = 208 '\\\\320'"
    gdb_test "p ctable1\[209\]" " = 209 '\\\\321'"
    gdb_test "p ctable1\[210\]" " = 210 '\\\\322'"
    gdb_test "p ctable1\[211\]" " = 211 '\\\\323'"
    gdb_test "p ctable1\[212\]" " = 212 '\\\\324'"
    gdb_test "p ctable1\[213\]" " = 213 '\\\\325'"
    gdb_test "p ctable1\[214\]" " = 214 '\\\\326'"
    gdb_test "p ctable1\[215\]" " = 215 '\\\\327'"
    gdb_test "p ctable1\[216\]" " = 216 '\\\\330'"
    gdb_test "p ctable1\[217\]" " = 217 '\\\\331'"
    gdb_test "p ctable1\[218\]" " = 218 '\\\\332'"
    gdb_test "p ctable1\[219\]" " = 219 '\\\\333'"
    gdb_test "p ctable1\[220\]" " = 220 '\\\\334'"
    gdb_test "p ctable1\[221\]" " = 221 '\\\\335'"
    gdb_test "p ctable1\[222\]" " = 222 '\\\\336'"
    gdb_test "p ctable1\[223\]" " = 223 '\\\\337'"
    gdb_test "p ctable1\[224\]" " = 224 '\\\\340'"
    gdb_test "p ctable1\[225\]" " = 225 '\\\\341'"
    gdb_test "p ctable1\[226\]" " = 226 '\\\\342'"
    gdb_test "p ctable1\[227\]" " = 227 '\\\\343'"
    gdb_test "p ctable1\[228\]" " = 228 '\\\\344'"
    gdb_test "p ctable1\[229\]" " = 229 '\\\\345'"
    gdb_test "p ctable1\[230\]" " = 230 '\\\\346'"
    gdb_test "p ctable1\[231\]" " = 231 '\\\\347'"
    gdb_test "p ctable1\[232\]" " = 232 '\\\\350'"
    gdb_test "p ctable1\[233\]" " = 233 '\\\\351'"
    gdb_test "p ctable1\[234\]" " = 234 '\\\\352'"
    gdb_test "p ctable1\[235\]" " = 235 '\\\\353'"
    gdb_test "p ctable1\[236\]" " = 236 '\\\\354'"
    gdb_test "p ctable1\[237\]" " = 237 '\\\\355'"
    gdb_test "p ctable1\[238\]" " = 238 '\\\\356'"
    gdb_test "p ctable1\[239\]" " = 239 '\\\\357'"
    gdb_test "p ctable1\[240\]" " = 240 '\\\\360'"
    gdb_test "p ctable1\[241\]" " = 241 '\\\\361'"
    gdb_test "p ctable1\[242\]" " = 242 '\\\\362'"
    gdb_test "p ctable1\[243\]" " = 243 '\\\\363'"
    gdb_test "p ctable1\[244\]" " = 244 '\\\\364'"
    gdb_test "p ctable1\[245\]" " = 245 '\\\\365'"
    gdb_test "p ctable1\[246\]" " = 246 '\\\\366'"
    gdb_test "p ctable1\[247\]" " = 247 '\\\\367'"
    gdb_test "p ctable1\[248\]" " = 248 '\\\\370'"
    gdb_test "p ctable1\[249\]" " = 249 '\\\\371'"
    gdb_test "p ctable1\[250\]" " = 250 '\\\\372'"
    gdb_test "p ctable1\[251\]" " = 251 '\\\\373'"
    gdb_test "p ctable1\[252\]" " = 252 '\\\\374'"
    gdb_test "p ctable1\[253\]" " = 253 '\\\\375'"
    gdb_test "p ctable1\[254\]" " = 254 '\\\\376'"
    gdb_test "p ctable1\[255\]" " = 255 '\\\\377'"
}

# Test interaction of the number of print elements to print and the
# repeat count, set to the default of 10.

proc test_print_repeats_10 {} {
    global gdb_prompt

    for { set x 1; } { $x <= 16 } { incr x; } {
	gdb_test "set print elements $x" ""
	for { set e 1; } { $e <= 16 } {incr e; } {
	    set v [expr $e - 1];
	    set command "p &ctable2\[${v}*16\]"
	    if { $x < $e } {
		set aval $x;
	    } else {
		set aval $e;
	    }
	    set xval [expr $x - $e];
	    if { $xval < 0 } {
		set xval 0;
	    }
	    if { $aval > 10 } {
		set a "'a' <repeats $aval times>";
		if { $xval > 0 } {
		    set a "${a}, \\\"";
		}
	    } else {
		set a "\\\"[string range "aaaaaaaaaaaaaaaa" 1 $aval]";
		if { $xval > 10 } {
		    set a "$a\\\", ";
		}
	    }
	    set xstr "";
	    if { $xval > 10 } {
		set xstr "'X' <repeats $xval times>";
	    } else {
		if { $xval > 0 } {
		    set xstr "[string range "XXXXXXXXXXXXXXXX" 1 $xval]\\\"";
		} else {
		    if { $aval <= 10 } {
			set xstr "\\\"";
		    }
		}
	    }
	    if { $aval < 16 } {
		set xstr "${xstr}\[.\]\[.\]\[.\]"
	    }
	    set string " = \[(\]unsigned char \[*\]\[)\] ${a}${xstr}";
	    gdb_test "$command" "$string" "$command with print elements set to $x";
	}
    }
}

proc test_print_strings {} {
    global gdb_prompt

    # We accept "(unsigned char *) " before the string.  char vs. unsigned char
    # is already tested elsewhere.

    # Test that setting print elements unlimited doesn't completely suppress
    # printing; this was a bug in older gdb's.
    gdb_test "set print elements 0" ""
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 0"
    gdb_test "set print elements 1" ""
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"t\"\\.\\.\\." "p teststring with elements set to 1"
    gdb_test "set print elements 5" ""
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"tests\"\\.\\.\\." "p teststring with elements set to 5"
    gdb_test "set print elements 19" ""
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 19"
    gdb_test "set print elements 20" ""
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 20"

    gdb_test "set print elements 8" ""

    gdb_test "p &ctable1\[0\]" \
	" = \\(unsigned char \\*\\) \"\""
    gdb_test "p &ctable1\[1\]" \
	" = \\(unsigned char \\*\\) \"\\\\001\\\\002\\\\003\\\\004\\\\005\\\\006\\\\a\\\\b\"..."
    gdb_test "p &ctable1\[1*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\b\\\\t\\\\n\\\\v\\\\f\\\\r\\\\016\\\\017\"..."
    gdb_test "p &ctable1\[2*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\020\\\\021\\\\022\\\\023\\\\024\\\\025\\\\026\\\\027\"..."
    gdb_test "p &ctable1\[3*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\030\\\\031\\\\032\\\\033\\\\034\\\\035\\\\036\\\\037\"..."
    gdb_test "p &ctable1\[4*8\]" \
	" = \\(unsigned char \\*\\) \" !\\\\\"#\\\$%&'\"..."
    gdb_test "p &ctable1\[5*8\]" \
	" = \\(unsigned char \\*\\) \"\\(\\)\\*\\+,-./\"..."
    gdb_test "p &ctable1\[6*8\]" \
	" = \\(unsigned char \\*\\) \"01234567\"..."
    gdb_test "p &ctable1\[7*8\]" \
	" = \\(unsigned char \\*\\) \"89:;<=>\\?\"..."
    gdb_test "p &ctable1\[8*8\]" \
	" = \\(unsigned char \\*\\) \"@ABCDEFG\"..."
    gdb_test "p &ctable1\[9*8\]" \
	" = \\(unsigned char \\*\\) \"HIJKLMNO\"..."
    gdb_test "p &ctable1\[10*8\]" \
	" = \\(unsigned char \\*\\) \"PQRSTUVW\"..."
    gdb_test "p &ctable1\[11*8\]" \
	" = \\(unsigned char \\*\\) \"XYZ\\\[\\\\\\\\\\\]\\^_\"..."
    gdb_test "p &ctable1\[12*8\]" \
	" = \\(unsigned char \\*\\) \"`abcdefg\"..."
    gdb_test "p &ctable1\[13*8\]" \
	" = \\(unsigned char \\*\\) \"hijklmno\"..."
    gdb_test "p &ctable1\[14*8\]" \
	" = \\(unsigned char \\*\\) \"pqrstuvw\"..."
    gdb_test "p &ctable1\[15*8\]" \
	" = \\(unsigned char \\*\\) \"xyz\[{|}\]+\\~\\\\177\"..."
    gdb_test "p &ctable1\[16*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\200\\\\201\\\\202\\\\203\\\\204\\\\205\\\\206\\\\207\"..."
    gdb_test "p &ctable1\[17*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\210\\\\211\\\\212\\\\213\\\\214\\\\215\\\\216\\\\217\"..."
    gdb_test "p &ctable1\[18*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\220\\\\221\\\\222\\\\223\\\\224\\\\225\\\\226\\\\227\"..."
    gdb_test "p &ctable1\[19*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\230\\\\231\\\\232\\\\233\\\\234\\\\235\\\\236\\\\237\"..."
    gdb_test "p &ctable1\[20*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\240\\\\241\\\\242\\\\243\\\\244\\\\245\\\\246\\\\247\"..."
    gdb_test "p &ctable1\[21*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\250\\\\251\\\\252\\\\253\\\\254\\\\255\\\\256\\\\257\"..."
    gdb_test "p &ctable1\[22*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\260\\\\261\\\\262\\\\263\\\\264\\\\265\\\\266\\\\267\"..."
    gdb_test "p &ctable1\[23*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\270\\\\271\\\\272\\\\273\\\\274\\\\275\\\\276\\\\277\"..."
    gdb_test "p &ctable1\[24*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\300\\\\301\\\\302\\\\303\\\\304\\\\305\\\\306\\\\307\"..."
    gdb_test "p &ctable1\[25*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\310\\\\311\\\\312\\\\313\\\\314\\\\315\\\\316\\\\317\"..."
    gdb_test "p &ctable1\[26*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\320\\\\321\\\\322\\\\323\\\\324\\\\325\\\\326\\\\327\"..."
    gdb_test "p &ctable1\[27*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\330\\\\331\\\\332\\\\333\\\\334\\\\335\\\\336\\\\337\"..."
    gdb_test "p &ctable1\[28*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\340\\\\341\\\\342\\\\343\\\\344\\\\345\\\\346\\\\347\"..."
    gdb_test "p &ctable1\[29*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\350\\\\351\\\\352\\\\353\\\\354\\\\355\\\\356\\\\357\"..."
    gdb_test "p &ctable1\[30*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\360\\\\361\\\\362\\\\363\\\\364\\\\365\\\\366\\\\367\"..."
    gdb_test "p &ctable1\[31*8\]" \
	" = \\(unsigned char \\*\\) \"\\\\370\\\\371\\\\372\\\\373\\\\374\\\\375\\\\376\\\\377\"..."
}

proc test_print_int_arrays {} {
    global gdb_prompt

    gdb_test "set print elements 24" ""

    gdb_test_escape_braces "p int1dim" \
	" = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}"
    gdb_test_escape_braces "p int2dim" \
	" = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}}"
    gdb_test_escape_braces "p int3dim" \
	" = {{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}"
    gdb_test_escape_braces "p int4dim" \
	" = {{{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}}"
}

proc test_print_typedef_arrays {} {
    global gdb_prompt

    gdb_test "set print elements 24" ""

    gdb_test_escape_braces "p a1" \
	" = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}"
    gdb_test "p a1\[0\]" " = 2"
    gdb_test "p a1\[9\]" " = 20"

    gdb_test "p a2" \
	" = \"abcd\""
    gdb_test "p a2\[0\]" " = 97 'a'"
    gdb_test "p a2\[3\]" " = 100 'd'"
}

proc test_artificial_arrays {} {
    # Send \026@ instead of just @ in case the kill character is @.
    gdb_test_escape_braces "p int1dim\[0\]\026@2" " = {0, 1}" {p int1dim[0]@2}
    gdb_test_escape_braces "p int1dim\[0\]\026@2\026@3" \
	"({{0, 1}, {2, 3}, {4, 5}}|\[Cc\]annot.*)" \
	{p int1dim[0]@2@3}
    gdb_test_escape_braces {p/x (short [])0x12345678} \
	" = ({0x1234, 0x5678}|{0x5678, 0x1234})"
}

proc test_print_char_arrays {} {
    global gdb_prompt
    global hex

    gdb_test "set print elements 24" ""
    gdb_test "set print address on" ""

    gdb_test "p arrays" \
	" = \\{array1 = \\{97 'a', 98 'b', 99 'c', 0 '\\\\0'\\}, array2 = \\{100 'd'\\}, array3 = \\{101 'e'\\}, array4 = \\{102 'f', 103 'g'\\}, array5 = \\{104 'h', 105 'i', 106 'j', 0 '\\\\0'\\}\\}"

    gdb_test "p parrays"		" = \\(struct some_arrays \\*\\) $hex"
    gdb_test "p parrays->array1"	" = \\{97 'a', 98 'b', 99 'c', 0 '\\\\0'\\}"
    gdb_test "p &parrays->array1"	" = \\(unsigned char \\(\\*\\)\\\[4\\\]\\) $hex"
    gdb_test "p parrays->array2"	" = \\{100 'd'\\}"
    gdb_test "p &parrays->array2"	" = \\(unsigned char \\(\\*\\)\\\[1\\\]\\) $hex"
    gdb_test "p parrays->array3"	" = \\{101 'e'\\}"
    gdb_test "p &parrays->array3"	" = \\(unsigned char \\(\\*\\)\\\[1\\\]\\) $hex"
    gdb_test "p parrays->array4"	" = \\{102 'f', 103 'g'\\}"
    gdb_test "p &parrays->array4"	" = \\(unsigned char \\(\\*\\)\\\[2\\\]\\) $hex"
    gdb_test "p parrays->array5"	" = \\{104 'h', 105 'i', 106 'j', 0 '\\\\0'\\}"
    gdb_test "p &parrays->array5"	" = \\(unsigned char \\(\\*\\)\\\[4\\\]\\) $hex"

    gdb_test "set print address off" ""
}

proc test_print_string_constants {} {
    global gdb_prompt

    gdb_test "set print elements 50" ""

    if [target_info exists gdb,cannot_call_functions] {
	setup_xfail "*-*-*" 2416
	fail "This target can not call functions"
	return
    }

    # We need to up this because this can be really slow on some boards.
    # (Test may involve inferior malloc() calls).
    set timeout 60;

    gdb_test "p \"a string\""		" = \"a string\""
    gdb_test "p \"embedded \\000 null\"" " = \"embedded \\\\000 null\""
    gdb_test "p \"abcd\"\[2\]"	" = 99 'c'"
    gdb_test "p sizeof (\"abcdef\")"	" = 7"
    gdb_test "ptype \"foo\""		" = char \\\[4\\\]"
    gdb_test "p *\"foo\""		" = 102 'f'"
    gdb_test "ptype *\"foo\""		" = char"
    gdb_test "p &*\"foo\""		" = \"foo\""
    setup_kfail "gdb/538" *-*-*
    gdb_test "ptype &*\"foo\""	"type = char \\*"
    gdb_test "p (char *)\"foo\""	" = \"foo\""
}

proc test_print_array_constants {} {

    if [target_info exists gdb,cannot_call_functions] {
	setup_xfail "*-*-*" 2416
	fail "This target can not call functions"
	return
    }

    # We need to up this because this can be really slow on some boards.
    # (Test may involve inferior malloc() calls).
    set timeout 60;

    gdb_test "print {'a','b','c'}"	" = \"abc\""
    gdb_test_escape_braces "print {0,1,2}"    " = {0, 1, 2}"
    gdb_test_escape_braces "print {(long)0,(long)1,(long)2}"  " = {0, 1, 2}"
    gdb_test_escape_braces "print {{0,1,2},{3,4,5}}"  " = {{0, 1, 2}, {3, 4, 5}}"
    gdb_test "print {4,5,6}\[2\]"	" = 6"
    gdb_test "print *&{4,5,6}\[1\]"	" = 5"
}

proc test_printf {} {
    gdb_test "printf \"x=%d,y=%d,z=%d\\n\", 5, 6, 7" "x=5,y=6,z=7"
    gdb_test "printf \"string=%.4sxx\\n\", teststring" "string=testxx"
    gdb_test "printf \"string=%sxx\\n\", teststring" \
	"string=teststring contentsxx"

    gdb_test "printf \"%f is fun\\n\", 1.0" "1\.0+ is fun"

    # Test mixing args of different sizes.
    gdb_test "printf \"x=%d,y=%f,z=%d\\n\", 5, 6.0, 7" "x=5,y=6\.0+,z=7"
    gdb_test "printf \"%x %f, %c %x, %x, %f\\n\", 0xbad, -99.541, 'z',\
0xfeedface, 0xdeadbeef, 5.0" "bad -99.54\[0-9\]+, z feedface, deadbeef, 5.0+"
}

# Escape a left curly brace to prevent it from being interpreted as 
# the beginning of a bound
proc gdb_test_escape_braces { args } {

    set pattern [lindex $args 1]
    regsub -all {\{[0-9]} $pattern {\\&} esc_pattern
    gdb_test [lindex $args 0] $esc_pattern [lindex $args 2]
}

# Start with a fresh gdb.

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir

gdb_test "print \$pc" "No registers\\."
# FIXME: should also test "print $pc" when there is an execfile but no
# remote debugging target, process or corefile.

gdb_load ${binfile}

gdb_test "set print sevenbit-strings" ""
gdb_test "set print address off" ""
gdb_test "set width 0" ""

if [set_lang_c] then {
    gdb_test "p ctable1\[120\]" "120 'x'" "p ctable1\[120\] #1"

    if [runto_main] then {
	test_integer_literals_accepted
	test_integer_literals_rejected
	test_character_literals_accepted
	test_print_all_chars
	test_print_repeats_10
	test_print_strings
	test_print_int_arrays
	test_print_typedef_arrays
	test_artificial_arrays
	test_print_char_arrays
# We used to do the runto main here.
	test_print_string_constants
	test_print_array_constants
	test_printf
    }
} else {
    fail "C print command tests suppressed"
}
