Skip to content
This repository was archived by the owner on Nov 11, 2018. It is now read-only.

Commit 4741f7f

Browse files
committed
defined new sequences, marked implemented sequences, implemented REVERSE_INDEX
1 parent 3d05f0e commit 4741f7f

File tree

3 files changed

+53
-40
lines changed

3 files changed

+53
-40
lines changed

cmake/ValaPrecompile.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@ macro(vala_precompile output)
187187
${ARGS_OPTIONS}
188188
${in_files}
189189
${custom_vapi_arguments}
190+
"-g"
190191
COMMAND
191192
${CMAKE_COMMAND} -E touch "vala.stamp"
192193
DEPENDS

src/TerminalOutput.vala

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public class TerminalOutput : Gee.ArrayList<OutputLine> {
9191
public void parse_stream_element(TerminalStream.StreamElement stream_element) {
9292
switch (stream_element.stream_element_type) {
9393
case TerminalStream.StreamElement.StreamElementType.TEXT:
94-
//message(_("Text sequence received: '%s'"), stream_element.text);
94+
message(_("Text sequence received: '%s'"), stream_element.text);
9595

9696
// Print only text that has not been printed yet
9797
string text_left = stream_element.text.substring(
@@ -223,6 +223,12 @@ public class TerminalOutput : Gee.ArrayList<OutputLine> {
223223
break;
224224

225225
case TerminalStream.StreamElement.ControlSequenceType.CURSOR_FORWARD:
226+
case TerminalStream.StreamElement.ControlSequenceType.REVERSE_INDEX:
227+
screen_offset -= 1;
228+
move_cursor(cursor_position.line - stream_element.get_numeric_parameter(0,1), cursor_position.column);
229+
terminal.terminal_view.terminal_output_view.add_line_views();
230+
break;
231+
226232
case TerminalStream.StreamElement.ControlSequenceType.CHARACTER_POSITION_RELATIVE:
227233
// The CUF sequence moves the active position to the right.
228234
// The distance moved is determined by the parameter (default: 1)

src/TerminalStream.vala

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -208,18 +208,18 @@ public class TerminalStream : Object {
208208
// Naming convention follows xterm specification found at
209209
// http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
210210
public enum ControlSequenceType {
211-
UNKNOWN,
211+
UNKNOWN, //implemented
212212

213-
BELL,
214-
BACKSPACE,
215-
CARRIAGE_RETURN,
213+
BELL, //implemented
214+
BACKSPACE, //implemented
215+
CARRIAGE_RETURN, //implemented
216216
RETURN_TERMINAL_STATUS,
217-
FORM_FEED,
218-
LINE_FEED,
217+
FORM_FEED, //implemented
218+
LINE_FEED, //implemented
219219
SHIFT_IN,
220220
SHIFT_OUT,
221-
HORIZONTAL_TAB,
222-
VERTICAL_TAB,
221+
HORIZONTAL_TAB, //implemented
222+
VERTICAL_TAB, //implemented
223223

224224
SEVEN_BIT_CONTROLS,
225225
EIGHT_BIT_CONTROLS,
@@ -233,7 +233,7 @@ public class TerminalStream : Object {
233233
DEC_SCREEN_ALIGNMENT_TEST,
234234
SELECT_DEFAULT_CHARACTER_SET,
235235
SELECT_UTF8_CHARACTER_SET,
236-
DESIGNATE_G0_CHARACTER_SET_VT100,
236+
DESIGNATE_G0_CHARACTER_SET_VT100, //implemented
237237
DESIGNATE_G1_CHARACTER_SET_VT100,
238238
DESIGNATE_G2_CHARACTER_SET_VT220,
239239
DESIGNATE_G3_CHARACTER_SET_VT220,
@@ -244,8 +244,8 @@ public class TerminalStream : Object {
244244
SAVE_CURSOR,
245245
RESTORE_CURSOR,
246246
FORWARD_INDEX,
247-
APPLICATION_KEYPAD,
248-
NORMAL_KEYPAD,
247+
APPLICATION_KEYPAD, //implemented
248+
NORMAL_KEYPAD, //implemented
249249
CURSOR_TO_LOWER_LEFT_CORNER_OF_SCREEN,
250250
FULL_RESET,
251251
MEMORY_LOCK,
@@ -256,58 +256,63 @@ public class TerminalStream : Object {
256256
INVOKE_G2_CHARACTER_SET_AS_GR,
257257
INVOKE_G1_CHARACTER_SET_AS_GR,
258258

259+
INDEX,
260+
NEXT_LINE,
261+
TAB_SET,
262+
REVERSE_INDEX,
263+
259264
USER_DEFINED_KEYS,
260265
REQUEST_STATUS_STRING,
261266
SET_TERMCAP_DATA,
262267
REQUEST_TERMCAP_STRING,
263268

264269
INSERT_CHARACTERS,
265-
CURSOR_UP,
266-
CURSOR_DOWN,
267-
CURSOR_FORWARD,
268-
CURSOR_BACKWARD,
270+
CURSOR_UP, //implemented
271+
CURSOR_DOWN, //implemented
272+
CURSOR_FORWARD, //implemented
273+
CURSOR_BACKWARD, //implemented
269274
CURSOR_NEXT_LINE,
270275
CURSOR_PRECEDING_LINE,
271-
CURSOR_CHARACTER_ABSOLUTE,
272-
CURSOR_POSITION,
276+
CURSOR_CHARACTER_ABSOLUTE, //implemented
277+
CURSOR_POSITION, //implemented
273278
CURSOR_FORWARD_TABULATION,
274-
ERASE_IN_DISPLAY_ED,
279+
ERASE_IN_DISPLAY_ED, //implemented
275280
ERASE_IN_DISPLAY_DECSED,
276-
ERASE_IN_LINE_EL,
281+
ERASE_IN_LINE_EL, //implemented
277282
ERASE_IN_LINE_DECSEL,
278283
INSERT_LINES,
279284
DELETE_LINES,
280-
DELETE_CHARACTERS,
285+
DELETE_CHARACTERS, //implemented
281286
SCROLL_UP_LINES,
282287
SCROLL_DOWN_LINES,
283288
INITIATE_HIGHLIGHT_MOUSE_TRACKING,
284289
RESET_TITLE_MODES_FEATURES,
285-
ERASE_CHARACTERS,
290+
ERASE_CHARACTERS, //implemented
286291
CURSOR_BACKWARD_TABULATION,
287-
CHARACTER_POSITION_ABSOLUTE,
292+
CHARACTER_POSITION_ABSOLUTE, //implemented
288293
CHARACTER_POSITION_RELATIVE,
289294
REPEAT_PRECEDING_GRAPHIC_CHARACTER,
290295
SEND_DEVICE_ATTRIBUTES_PRIMARY,
291296
SEND_DEVICE_ATTRIBUTES_SECONDARY,
292-
LINE_POSITION_ABSOLUTE,
293-
LINE_POSITION_RELATIVE,
294-
HORIZONTAL_AND_VERTICAL_POSITION,
297+
LINE_POSITION_ABSOLUTE, //implemented
298+
LINE_POSITION_RELATIVE, //implemented
299+
HORIZONTAL_AND_VERTICAL_POSITION, //implemented
295300
TAB_CLEAR,
296-
SET_MODE,
301+
SET_MODE, //implemented
297302
DEC_PRIVATE_MODE_SET,
298303
MEDIA_COPY,
299304
MEDIA_COPY_DEC,
300-
RESET_MODE,
301-
DEC_PRIVATE_MODE_RESET,
302-
CHARACTER_ATTRIBUTES,
305+
RESET_MODE, //implemented
306+
DEC_PRIVATE_MODE_RESET, //implemented
307+
CHARACTER_ATTRIBUTES, //implemented
303308
SET_OR_RESET_RESOURCE_VALUES,
304309
DEVICE_STATUS_REPORT,
305310
DISABLE_MODIFIERS,
306311
DEVICE_STATUS_REPORT_DEC,
307312
SET_RESOURCE_VALUE_POINTER_MODE,
308313
SOFT_TERMINAL_RESET,
309314
REQUEST_ANSI_MODE,
310-
REQUEST_DEC_PRIVATE_MODE,
315+
REQUEST_DEC_PRIVATE_MODE, //implemented
311316
SET_CONFORMANCE_LEVEL,
312317
LOAD_LEDS,
313318
SET_CURSOR_STYLE,
@@ -338,16 +343,16 @@ public class TerminalStream : Object {
338343
INSERT_COLUMNS,
339344
DELETE_COLUMNS,
340345

341-
SET_TEXT_PARAMETERS,
346+
SET_TEXT_PARAMETERS, //implemented
342347

343-
FTCS_PROMPT,
344-
FTCS_COMMAND_START,
345-
FTCS_COMMAND_EXECUTED,
346-
FTCS_COMMAND_FINISHED,
347-
FTCS_TEXT_MENU_START,
348-
FTCS_TEXT_MENU_END,
349-
FTCS_PROGRESS,
350-
FTCS_EXECUTE_COMMANDS
348+
FTCS_PROMPT, //implemented
349+
FTCS_COMMAND_START, //implemented
350+
FTCS_COMMAND_EXECUTED, //implemented
351+
FTCS_COMMAND_FINISHED, //implemented
352+
FTCS_TEXT_MENU_START, //implemented
353+
FTCS_TEXT_MENU_END, //implemented
354+
FTCS_PROGRESS, //implemented
355+
FTCS_EXECUTE_COMMANDS //implemented
351356
}
352357

353358
// TODO: Use accessor methods ("add_parameter()") instead of public(?)
@@ -431,6 +436,7 @@ public class TerminalStream : Object {
431436
add_esc_sequence_pattern(ControlSequenceType.FULL_RESET, "c");
432437
add_esc_sequence_pattern(ControlSequenceType.MEMORY_LOCK, "l");
433438
add_esc_sequence_pattern(ControlSequenceType.MEMORY_UNLOCK, "m");
439+
add_esc_sequence_pattern(ControlSequenceType.REVERSE_INDEX, "M");
434440
add_esc_sequence_pattern(ControlSequenceType.INVOKE_G2_CHARACTER_SET_AS_GL, "n");
435441
add_esc_sequence_pattern(ControlSequenceType.INVOKE_G3_CHARACTER_SET_AS_GL, "o");
436442
add_esc_sequence_pattern(ControlSequenceType.INVOKE_G3_CHARACTER_SET_AS_GR, "|");

0 commit comments

Comments
 (0)