author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Tue, 11 Jun 2019 11:45:29 +0100 | |
changeset 189 | ce3e5dab2e60 |
parent 179 | c43cece06442 |
child 199 | cb411138b295 |
permissions | -rw-r--r-- |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Encoding: utf8 }" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
91
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
3 |
" |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
4 |
jv:libgdbs - GNU Debugger Interface Library |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
5 |
Copyright (C) 2015-now Jan Vrany |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
6 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
7 |
This library is free software; you can redistribute it and/or |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
8 |
modify it under the terms of the GNU Lesser General Public |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
9 |
License as published by the Free Software Foundation; either |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
10 |
version 2.1 of the License. |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
11 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
12 |
This library is distributed in the hope that it will be useful, |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
13 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
14 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
15 |
Lesser General Public License for more details. |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
16 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
17 |
You should have received a copy of the GNU Lesser General Public |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
18 |
License along with this library; if not, write to the Free Software |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
19 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
20 |
" |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
"{ Package: 'jv:libgdbs' }" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
"{ NameSpace: Smalltalk }" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
Object subclass:#GDBMIPrinter |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
instanceVariableNames:'stream' |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
classVariableNames:'' |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
poolDictionaries:'' |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
category:'GDB-Private' |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
!GDBMIPrinter class methodsFor:'documentation'! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
|
91
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
34 |
copyright |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
35 |
" |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
36 |
jv:libgdbs - GNU Debugger Interface Library |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
37 |
Copyright (C) 2015-now Jan Vrany |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
38 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
39 |
This library is free software; you can redistribute it and/or |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
40 |
modify it under the terms of the GNU Lesser General Public |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
41 |
License as published by the Free Software Foundation; either |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
42 |
version 2.1 of the License. |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
43 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
44 |
This library is distributed in the hope that it will be useful, |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
45 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
46 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
47 |
Lesser General Public License for more details. |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
48 |
|
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
49 |
You should have received a copy of the GNU Lesser General Public |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
50 |
License along with this library; if not, write to the Free Software |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
51 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
52 |
" |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
53 |
! |
472a4841a8b6
License this package under 'GNU Lesser General Public License'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
85
diff
changeset
|
54 |
|
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
documentation |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
A writer that writes GDB commands to an MI channel usin |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
GDB MI input syntax [1]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
[author:] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
[instance variables:] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
[class variables:] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
[see also:] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
[1]: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Input-Syntax.html#GDB_002fMI-Input-Syntax |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
! ! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
!GDBMIPrinter class methodsFor:'instance creation'! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
on: aStream |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
^ self new setStream: aStream. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
"Created: / 11-07-2017 / 21:21:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
! ! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
!GDBMIPrinter methodsFor:'initialization'! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
setStream: aStream |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
stream := aStream |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
"Created: / 11-07-2017 / 21:22:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
! ! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
!GDBMIPrinter methodsFor:'printing'! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
printCEscapedCharacter: aCharacter |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
stream nextPut: $\. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
aCharacter == $" ifTrue:[ stream nextPut: $". ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
aCharacter == $\ ifTrue:[ stream nextPut: $\. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
aCharacter == Character backspace ifTrue:[ stream nextPut: $b. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
aCharacter == Character tab ifTrue:[ stream nextPut: $t. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
aCharacter == Character linefeed ifTrue:[ stream nextPut: $n. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
aCharacter == Character return ifTrue:[ stream nextPut: $r. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
aCharacter == Character newPage ifTrue:[ stream nextPut: $f. ^ self ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
aCharacter codePoint <= 16rFF ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
stream nextPut: $x. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
aCharacter codePoint printOn: stream base: 16. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
^ self. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
]. |
153
dd55019f1d86
Partability: use ANSI `#signal:` to raise an exception
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
126
diff
changeset
|
108 |
GDBError signal: 'Unrepresentable character: \U', (aCharacter codePoint printStringRadix: 16) |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
"Created: / 11-07-2017 / 22:12:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
153
dd55019f1d86
Partability: use ANSI `#signal:` to raise an exception
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
126
diff
changeset
|
111 |
"Modified: / 21-10-2018 / 08:06:56 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
|
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
114 |
printCEscapedString: aString |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
" |
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
116 |
seven-bit-iso-c-string-content |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
117 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
| start stop | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
start := 1. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
[ start <= aString size ] whileTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
121 |
| char | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
stop := start. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
stop > aString size ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
stream nextPutAll:aString startingAt: start to: stop - 1. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
^ self. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
char := aString at: stop. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
stop := stop + 1. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
char == Character space or:[(self needCEscaping: char) not] ] whileTrue. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
stream nextPutAll:aString startingAt: start to: stop - 2. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
self printCEscapedCharacter: char. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
start := stop. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
]. |
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
135 |
|
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
136 |
"Created: / 13-03-2019 / 12:12:42 / jv" |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
137 |
! |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
138 |
|
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
139 |
printCString: aString |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
140 |
" |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
141 |
c-string → ''' seven-bit-iso-c-string-content ''' |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
142 |
" |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
143 |
stream nextPut: $". |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
144 |
self printCEscapedString: aString. |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
stream nextPut: $". |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
"Created: / 11-07-2017 / 22:05:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
148 |
"Modified: / 13-03-2019 / 12:13:10 / jv" |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
printCommand: aGDBCommand |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
command → cli-command | mi-command |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
aGDBCommand isMICommand ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
156 |
self printCommandMI: aGDBCommand |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
157 |
] ifFalse:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
158 |
self printCommandCLI: aGDBCommand. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
159 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
160 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
161 |
"Created: / 11-07-2017 / 21:29:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
162 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
163 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
164 |
printCommandCLI: aGDBCLICommand |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
165 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
166 |
cli-command → [ token ] cli-command nl, where cli-command is any existing GDB CLI command. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
167 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
168 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
169 |
aGDBCLICommand token notNil ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
170 |
aGDBCLICommand token printOn: stream. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
171 |
]. |
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
172 |
self printCEscapedString: aGDBCLICommand value. |
174
18ef81a3fee5
Add `GDBCLICommand >> #operation` returning (expanded) CLI command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
173 |
aGDBCLICommand runOnBackground ifTrue:[ |
18ef81a3fee5
Add `GDBCLICommand >> #operation` returning (expanded) CLI command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
174 |
stream space; nextPut:$& |
18ef81a3fee5
Add `GDBCLICommand >> #operation` returning (expanded) CLI command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
175 |
]. |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
176 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
177 |
"Created: / 11-07-2017 / 21:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
174
18ef81a3fee5
Add `GDBCLICommand >> #operation` returning (expanded) CLI command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
153
diff
changeset
|
178 |
"Modified: / 28-01-2019 / 21:24:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
179 |
"Modified: / 13-03-2019 / 12:15:36 / jv" |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
180 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
181 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
182 |
printCommandMI: aGDBMICommand |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
183 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
184 |
mi-command → [ token ] '-' operation ( ' ' option )* [ ' --' ] ( ' ' parameter )* nl |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
185 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
186 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
187 |
| maybeOption | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
aGDBMICommand token notNil ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
aGDBMICommand token printOn: stream. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
stream nextPut:$-; nextPutAll: aGDBMICommand operation. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
194 |
"/ Now, this is tricky. We have no distinction between options :-( |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
195 |
maybeOption := true. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
196 |
aGDBMICommand arguments notEmptyOrNil ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
197 |
aGDBMICommand arguments do:[:each | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
198 |
| eachAsString | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
199 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
eachAsString := each asString. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
201 |
stream space. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
202 |
eachAsString = '--' ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
203 |
maybeOption := false. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
204 |
stream nextPutAll: '--'. |
126
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
205 |
] ifFalse:[ |
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
206 |
(maybeOption and:[eachAsString first = $-]) ifTrue:[ |
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
207 |
self printOption: eachAsString |
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
208 |
] ifFalse:[ |
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
209 |
self printParameter: eachAsString. |
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
210 |
]. |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
211 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
212 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
213 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
214 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
215 |
"Created: / 11-07-2017 / 21:36:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
126
fb73b0af430b
Added initial support for disassembling
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
91
diff
changeset
|
216 |
"Modified: / 22-06-2018 / 12:00:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
85
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
printNl |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
221 |
nl → CR | CR-LF |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
222 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
223 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
224 |
stream nextPut: Character return. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
225 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
226 |
"Created: / 11-07-2017 / 21:33:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
227 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
228 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
229 |
printNonBlankSequence: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
230 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
231 |
non-blank-sequence → anything, provided it doesn’t contain special characters such as '-', nl, ''' and of course ' ' |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
232 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
233 |
stream nextPutAll: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
234 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
235 |
"Created: / 11-07-2017 / 21:54:29 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
236 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
237 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
238 |
printOption: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
239 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
240 |
option → '-' parameter [ ' ' parameter ] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
241 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
242 |
| i | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
243 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
244 |
i := 1. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
245 |
[ i <= aString size and:[ (aString at: i) == $- ] ] whileTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
246 |
i := i + 1. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
247 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
248 |
i to: aString size do:[:i | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
249 |
| c | |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
250 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
251 |
c := aString at: i. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
252 |
(self needCEscaping: c) ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
253 |
self printParameter: aString. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
254 |
^ self |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
255 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
256 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
257 |
stream nextPutAll: aString. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
258 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
259 |
"Created: / 11-07-2017 / 21:51:11 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
260 |
"Modified: / 11-07-2017 / 23:21:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
261 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
262 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
263 |
printParameter: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
264 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
265 |
parameter → non-blank-sequence | c-string |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
266 |
" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
267 |
(self isNonBlankSequence: aString) ifTrue:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
268 |
self printNonBlankSequence: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
269 |
] ifFalse:[ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
270 |
self printCString: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
271 |
]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
272 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
273 |
"Created: / 11-07-2017 / 21:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
274 |
! ! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
275 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
276 |
!GDBMIPrinter methodsFor:'testing'! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
277 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
278 |
isNonBlankSequence: aString |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
279 |
^ aString allSatisfy:[:each | (self needCEscaping: each) not ]. |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
280 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
281 |
"Created: / 11-07-2017 / 21:53:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
282 |
"Modified: / 11-07-2017 / 23:26:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
283 |
! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
284 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
285 |
needCEscaping: aCharacter |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
286 |
^ aCharacter == $\ |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
287 |
or:[ aCharacter == $" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
288 |
or:[ (aCharacter codePoint between: 33 and: 16r7F) not ]] |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
289 |
|
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
290 |
"Created: / 11-07-2017 / 22:42:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
291 |
! ! |
6fea1000a2a5
Implemented proper quoting of MI commands
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
292 |
|
179
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
293 |
!GDBMIPrinter class methodsFor:'documentation'! |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
294 |
|
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
295 |
version_HG |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
296 |
|
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
297 |
^ '$Changeset: <not expanded> $' |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
298 |
! ! |
c43cece06442
C-escape CLI command string when sending CLI command over MI
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
174
diff
changeset
|
299 |