]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
adding xterm comparison tests
authorJörg Breitbart <jerch@rockborn.de>
Tue, 5 Jul 2016 09:36:30 +0000 (11:36 +0200)
committerJörg Breitbart <jerch@rockborn.de>
Tue, 5 Jul 2016 09:36:30 +0000 (11:36 +0200)
150 files changed:
package.json
test/escape_sequence_files/NOTES [new file with mode: 0644]
test/escape_sequence_files/run_tests.py [new file with mode: 0644]
test/escape_sequence_files/t0001-all_printable.in [new file with mode: 0644]
test/escape_sequence_files/t0001-all_printable.text [new file with mode: 0644]
test/escape_sequence_files/t0002-history.in [new file with mode: 0644]
test/escape_sequence_files/t0002-history.text [new file with mode: 0644]
test/escape_sequence_files/t0002j-simple_string.in [new file with mode: 0644]
test/escape_sequence_files/t0002j-simple_string.text [new file with mode: 0644]
test/escape_sequence_files/t0003-line_wrap.in [new file with mode: 0644]
test/escape_sequence_files/t0003-line_wrap.text [new file with mode: 0644]
test/escape_sequence_files/t0003j-LF.in [new file with mode: 0644]
test/escape_sequence_files/t0003j-LF.text [new file with mode: 0644]
test/escape_sequence_files/t0004-LF.in [new file with mode: 0644]
test/escape_sequence_files/t0004-LF.text [new file with mode: 0644]
test/escape_sequence_files/t0004j-CR.in [new file with mode: 0644]
test/escape_sequence_files/t0004j-CR.text [new file with mode: 0644]
test/escape_sequence_files/t0005-CR.in [new file with mode: 0644]
test/escape_sequence_files/t0005-CR.text [new file with mode: 0644]
test/escape_sequence_files/t0006-IND.in [new file with mode: 0644]
test/escape_sequence_files/t0006-IND.text [new file with mode: 0644]
test/escape_sequence_files/t0007-space_at_end.in [new file with mode: 0644]
test/escape_sequence_files/t0007-space_at_end.text [new file with mode: 0644]
test/escape_sequence_files/t0008-BS.in [new file with mode: 0644]
test/escape_sequence_files/t0008-BS.text [new file with mode: 0644]
test/escape_sequence_files/t0009-NEL.in [new file with mode: 0644]
test/escape_sequence_files/t0009-NEL.text [new file with mode: 0644]
test/escape_sequence_files/t0010-RI.in [new file with mode: 0644]
test/escape_sequence_files/t0010-RI.text [new file with mode: 0644]
test/escape_sequence_files/t0011-RI_scroll.in [new file with mode: 0644]
test/escape_sequence_files/t0011-RI_scroll.text [new file with mode: 0644]
test/escape_sequence_files/t0012-VT.in [new file with mode: 0644]
test/escape_sequence_files/t0012-VT.text [new file with mode: 0644]
test/escape_sequence_files/t0013-FF.in [new file with mode: 0644]
test/escape_sequence_files/t0013-FF.text [new file with mode: 0644]
test/escape_sequence_files/t0014-CAN.in [new file with mode: 0644]
test/escape_sequence_files/t0014-CAN.text [new file with mode: 0644]
test/escape_sequence_files/t0015-SUB.in [new file with mode: 0644]
test/escape_sequence_files/t0015-SUB.text [new file with mode: 0644]
test/escape_sequence_files/t0016-SU.in [new file with mode: 0644]
test/escape_sequence_files/t0016-SU.text [new file with mode: 0644]
test/escape_sequence_files/t0017-SD.in [new file with mode: 0644]
test/escape_sequence_files/t0017-SD.text [new file with mode: 0644]
test/escape_sequence_files/t0020-CUF.in [new file with mode: 0644]
test/escape_sequence_files/t0020-CUF.text [new file with mode: 0644]
test/escape_sequence_files/t0021-CUB.in [new file with mode: 0644]
test/escape_sequence_files/t0021-CUB.text [new file with mode: 0644]
test/escape_sequence_files/t0022-CUU.in [new file with mode: 0644]
test/escape_sequence_files/t0022-CUU.text [new file with mode: 0644]
test/escape_sequence_files/t0023-CUU_scroll.in [new file with mode: 0644]
test/escape_sequence_files/t0023-CUU_scroll.text [new file with mode: 0644]
test/escape_sequence_files/t0024-CUD.in [new file with mode: 0644]
test/escape_sequence_files/t0024-CUD.text [new file with mode: 0644]
test/escape_sequence_files/t0025-CUP.in [new file with mode: 0644]
test/escape_sequence_files/t0025-CUP.text [new file with mode: 0644]
test/escape_sequence_files/t0026-CNL.in [new file with mode: 0644]
test/escape_sequence_files/t0026-CNL.text [new file with mode: 0644]
test/escape_sequence_files/t0027-CPL.in [new file with mode: 0644]
test/escape_sequence_files/t0027-CPL.text [new file with mode: 0644]
test/escape_sequence_files/t0030-HPR.in [new file with mode: 0644]
test/escape_sequence_files/t0030-HPR.text [new file with mode: 0644]
test/escape_sequence_files/t0031-HPB.in_ [new file with mode: 0644]
test/escape_sequence_files/t0031-HPB.text [new file with mode: 0644]
test/escape_sequence_files/t0032-VPB.in [new file with mode: 0644]
test/escape_sequence_files/t0032-VPB.text [new file with mode: 0644]
test/escape_sequence_files/t0033-VPB_scroll.in [new file with mode: 0644]
test/escape_sequence_files/t0033-VPB_scroll.text [new file with mode: 0644]
test/escape_sequence_files/t0034-VPR.in [new file with mode: 0644]
test/escape_sequence_files/t0034-VPR.text [new file with mode: 0644]
test/escape_sequence_files/t0035-HVP.in [new file with mode: 0644]
test/escape_sequence_files/t0035-HVP.text [new file with mode: 0644]
test/escape_sequence_files/t0040-REP.in [new file with mode: 0644]
test/escape_sequence_files/t0040-REP.text [new file with mode: 0644]
test/escape_sequence_files/t0050-ICH.in [new file with mode: 0644]
test/escape_sequence_files/t0050-ICH.text [new file with mode: 0644]
test/escape_sequence_files/t0051-IL.in [new file with mode: 0644]
test/escape_sequence_files/t0051-IL.text [new file with mode: 0644]
test/escape_sequence_files/t0052-DL.in [new file with mode: 0644]
test/escape_sequence_files/t0052-DL.text [new file with mode: 0644]
test/escape_sequence_files/t0053-DCH.in [new file with mode: 0644]
test/escape_sequence_files/t0053-DCH.text [new file with mode: 0644]
test/escape_sequence_files/t0054-ECH.in [new file with mode: 0644]
test/escape_sequence_files/t0054-ECH.text [new file with mode: 0644]
test/escape_sequence_files/t0055-EL.in [new file with mode: 0644]
test/escape_sequence_files/t0055-EL.text [new file with mode: 0644]
test/escape_sequence_files/t0056-ED.in [new file with mode: 0644]
test/escape_sequence_files/t0056-ED.text [new file with mode: 0644]
test/escape_sequence_files/t0057-ED3.in [new file with mode: 0644]
test/escape_sequence_files/t0057-ED3.note [new file with mode: 0644]
test/escape_sequence_files/t0057-ED3.text [new file with mode: 0644]
test/escape_sequence_files/t0060-DECSC.in [new file with mode: 0644]
test/escape_sequence_files/t0060-DECSC.text [new file with mode: 0644]
test/escape_sequence_files/t0061-CSI_s.in [new file with mode: 0644]
test/escape_sequence_files/t0061-CSI_s.text [new file with mode: 0644]
test/escape_sequence_files/t0070-DECSTBM_LF.in [new file with mode: 0644]
test/escape_sequence_files/t0070-DECSTBM_LF.text [new file with mode: 0644]
test/escape_sequence_files/t0071-DECSTBM_IND.in [new file with mode: 0644]
test/escape_sequence_files/t0071-DECSTBM_IND.text [new file with mode: 0644]
test/escape_sequence_files/t0072-DECSTBM_NEL.in [new file with mode: 0644]
test/escape_sequence_files/t0072-DECSTBM_NEL.text [new file with mode: 0644]
test/escape_sequence_files/t0073-DECSTBM_RI.in [new file with mode: 0644]
test/escape_sequence_files/t0073-DECSTBM_RI.text [new file with mode: 0644]
test/escape_sequence_files/t0074-DECSTBM_SU_SD.in [new file with mode: 0644]
test/escape_sequence_files/t0074-DECSTBM_SU_SD.text [new file with mode: 0644]
test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in [new file with mode: 0644]
test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text [new file with mode: 0644]
test/escape_sequence_files/t0076-DECSTBM_IL_DL.in [new file with mode: 0644]
test/escape_sequence_files/t0076-DECSTBM_IL_DL.text [new file with mode: 0644]
test/escape_sequence_files/t0077-DECSTBM_quirks.in [new file with mode: 0644]
test/escape_sequence_files/t0077-DECSTBM_quirks.text [new file with mode: 0644]
test/escape_sequence_files/t0080-HT.in [new file with mode: 0644]
test/escape_sequence_files/t0080-HT.text [new file with mode: 0644]
test/escape_sequence_files/t0081-TBC.in [new file with mode: 0644]
test/escape_sequence_files/t0081-TBC.text [new file with mode: 0644]
test/escape_sequence_files/t0082-HTS.in [new file with mode: 0644]
test/escape_sequence_files/t0082-HTS.text [new file with mode: 0644]
test/escape_sequence_files/t0083-CHT.in [new file with mode: 0644]
test/escape_sequence_files/t0083-CHT.text [new file with mode: 0644]
test/escape_sequence_files/t0084-CBT.in [new file with mode: 0644]
test/escape_sequence_files/t0084-CBT.text [new file with mode: 0644]
test/escape_sequence_files/t0084-CBT.text-xterm [new file with mode: 0644]
test/escape_sequence_files/t0090-alt_screen.in [new file with mode: 0644]
test/escape_sequence_files/t0090-alt_screen.text [new file with mode: 0644]
test/escape_sequence_files/t0091-alt_screen_ED3.in [new file with mode: 0644]
test/escape_sequence_files/t0091-alt_screen_ED3.text [new file with mode: 0644]
test/escape_sequence_files/t0092-alt_screen_DECSC.in [new file with mode: 0644]
test/escape_sequence_files/t0092-alt_screen_DECSC.text [new file with mode: 0644]
test/escape_sequence_files/t0100-IRM.in [new file with mode: 0644]
test/escape_sequence_files/t0100-IRM.text [new file with mode: 0644]
test/escape_sequence_files/t0101-NLM.in [new file with mode: 0644]
test/escape_sequence_files/t0101-NLM.text [new file with mode: 0644]
test/escape_sequence_files/t0102-DECAWM.in [new file with mode: 0644]
test/escape_sequence_files/t0102-DECAWM.text [new file with mode: 0644]
test/escape_sequence_files/t0103-reverse_wrap.in [new file with mode: 0644]
test/escape_sequence_files/t0103-reverse_wrap.text [new file with mode: 0644]
test/escape_sequence_files/t0200-SGR.html [new file with mode: 0644]
test/escape_sequence_files/t0200-SGR.in_ [new file with mode: 0644]
test/escape_sequence_files/t0220-SGR_inverse.html [new file with mode: 0644]
test/escape_sequence_files/t0220-SGR_inverse.in_ [new file with mode: 0644]
test/escape_sequence_files/t0500-bash_long_line.in [new file with mode: 0644]
test/escape_sequence_files/t0500-bash_long_line.text [new file with mode: 0644]
test/escape_sequence_files/t0501-bash_ls.in [new file with mode: 0644]
test/escape_sequence_files/t0501-bash_ls.text [new file with mode: 0644]
test/escape_sequence_files/t0502-bash_ls_color.in [new file with mode: 0644]
test/escape_sequence_files/t0502-bash_ls_color.text [new file with mode: 0644]
test/escape_sequence_files/t0503-zsh_ls_color.in [new file with mode: 0644]
test/escape_sequence_files/t0503-zsh_ls_color.text [new file with mode: 0644]
test/escape_sequence_files/t0504-vim.in [new file with mode: 0644]
test/escape_sequence_files/t0504-vim.text [new file with mode: 0644]
test/escape_sequences.js [new file with mode: 0644]

index 055ef340e92d9fec6076b861692e3a0184222c0d..488820066fabf42647afea6ca76a982235f21bec 100644 (file)
@@ -1,18 +1,24 @@
 {
   "name": "xterm",
   "version": "0.33.0",
-  "ignore": ["demo", "test", ".gitignore"],
+  "ignore": [
+    "demo",
+    "test",
+    ".gitignore"
+  ],
   "main": "src/xterm.js",
   "repository": "https://github.com/sourcelair/xterm.js",
   "license": "MIT",
   "devDependencies": {
+    "chai": "3.5.0",
+    "docdash": "0.4.0",
     "express": "4.13.4",
     "express-ws": "2.0.0-rc.1",
-    "pty.js": "0.3.0",
-    "mocha": "2.5.3",
-    "chai": "3.5.0",
+    "glob": "^7.0.5",
     "jsdoc": "3.4.0",
-    "docdash": "0.4.0"
+    "mocha": "2.5.3",
+    "pty.js": "0.3.0",
+    "sleep": "^3.0.1"
   },
   "scripts": {
     "start": "node demo/app",
diff --git a/test/escape_sequence_files/NOTES b/test/escape_sequence_files/NOTES
new file mode 100644 (file)
index 0000000..bcadcb4
--- /dev/null
@@ -0,0 +1,21 @@
+All tests are made for 80x25 terminal. Make sure to run tests with 80x25.
+
+Create .text files from xterm (expected output)
+- open xterm
+- resize xterm to 80x25
+- run `python run_tests.py`
+- copy & paste whole window output into editor
+- add 26th empty line (due to line handling in toString) - not a bug, a feature ;)
+- advance to next test with ^D
+
+
+Known problems
+##############
+
+
+t0031-HBP:
+    - no documentation at all about CSIj found - skipping
+
+t0050-ICH:
+    - bug in xterm? (cant ICH last real char, always sticks to last col)
+    - text used from https://github.com/MarkLodato/vt100-parser/blob/master/test/t0050-ICH.text
diff --git a/test/escape_sequence_files/run_tests.py b/test/escape_sequence_files/run_tests.py
new file mode 100644 (file)
index 0000000..08efbf3
--- /dev/null
@@ -0,0 +1,73 @@
+from glob import glob
+import os
+import sys
+import termios
+import atexit
+
+BASE_DIR = os.path.dirname(os.path.abspath(__file__))
+
+
+def enable_echo(fd, enabled):
+    (iflag, oflag, cflag, lflag, ispeed, ospeed, cc) = termios.tcgetattr(fd)
+    if enabled:
+        lflag |= termios.ECHO
+    else:
+        lflag &= ~termios.ECHO
+    new_attr = [iflag, oflag, cflag, lflag, ispeed, ospeed, cc]
+    termios.tcsetattr(fd, termios.TCSANOW, new_attr)
+
+atexit.register(enable_echo, sys.stdin.fileno(), True)
+
+output = []
+
+
+def log(append=False, *s):
+    if append:
+        output[-1] += ' ' + ' '.join(str(part) for part in s)
+    else:
+        output.append(' '.join(str(part) for part in s))
+
+
+def reset_terminal():
+    sys.stdout.write('\x1bc\x1b[H')
+    sys.stdout.flush()
+
+
+def test():
+    count = 0
+    passed = 0
+    for i, testfile in enumerate(sorted(glob(os.path.join(BASE_DIR, '*.in')))):
+        count += 1
+        log(False, os.path.basename(testfile))
+        reset_terminal()
+        with open(testfile) as test:
+            sys.stdout.write('\x1b]0;%s\x07' % os.path.basename(testfile))
+            sys.stdout.write(test.read()+'\x1bt')
+            sys.stdout.flush()
+        with open(os.path.join(os.path.dirname(testfile),
+                               os.path.basename(testfile).split('.')[0]+'.text')) as expected:
+            terminal_output = sys.stdin.read()
+            if not terminal_output:
+                # we are in xterm
+                continue
+            if terminal_output != expected.read():
+                log(True, '\x1b[31merror\x1b[0m')
+                with open(os.path.join(os.path.dirname(testfile), 'output',
+                                       os.path.basename(testfile)), 'w') as t_out:
+                    t_out.write(terminal_output)
+            else:
+                passed += 1
+                log(True, '\x1b[32mpass\x1b[0m')
+    return count, passed
+
+
+if __name__ == '__main__':
+    enable_echo(sys.stdin.fileno(), False)
+    count, passed = test()
+    enable_echo(sys.stdin.fileno(), True)
+    reset_terminal()
+    for i in range(len(output)/2+1):
+        if not (i+1) % 25:
+            sys.stdin.read()
+        print ''.join(i.ljust(40) for i in output[i*2:i*2+2])
+    print '\x1b[33mcoverage: %s/%s (%d%%) tests passed.\x1b[0m' % (passed, count, passed*100/count)
diff --git a/test/escape_sequence_files/t0001-all_printable.in b/test/escape_sequence_files/t0001-all_printable.in
new file mode 100644 (file)
index 0000000..2f36543
--- /dev/null
@@ -0,0 +1,6 @@
+ !"#$%&'()*+,-./
+0123456789:;<=>?
+@ABCDEFGHIJKLMNO
+PQRSTUVWXYZ[\]^_
+`abcdefghijklmno
+pqrstuvwxyz{|}~
diff --git a/test/escape_sequence_files/t0001-all_printable.text b/test/escape_sequence_files/t0001-all_printable.text
new file mode 100644 (file)
index 0000000..421f5a7
--- /dev/null
@@ -0,0 +1,25 @@
+ !"#$%&'()*+,-./
+0123456789:;<=>?
+@ABCDEFGHIJKLMNO
+PQRSTUVWXYZ[\]^_
+`abcdefghijklmno
+pqrstuvwxyz{|}~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0002-history.in b/test/escape_sequence_files/t0002-history.in
new file mode 100644 (file)
index 0000000..3bc7fbc
--- /dev/null
@@ -0,0 +1,95 @@
+!
+"
+#
+$
+%
+&
+'
+(
+)
+*
++
+,
+-
+.
+/
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+:
+;
+<
+=
+>
+?
+@
+A
+B
+C
+D
+E
+F
+G
+H
+I
+J
+K
+L
+M
+N
+O
+P
+Q
+R
+S
+T
+U
+V
+W
+X
+Y
+Z
+[
+\
+]
+^
+_
+`
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x
+y
+z
+{
+|
+}
+~
diff --git a/test/escape_sequence_files/t0002-history.text b/test/escape_sequence_files/t0002-history.text
new file mode 100644 (file)
index 0000000..39bdf52
--- /dev/null
@@ -0,0 +1,25 @@
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x
+y
+z
+{
+|
+}
+~
+
diff --git a/test/escape_sequence_files/t0002j-simple_string.in b/test/escape_sequence_files/t0002j-simple_string.in
new file mode 100644 (file)
index 0000000..a679175
--- /dev/null
@@ -0,0 +1 @@
+abcdefghijklmnopqrstuvwxyz0123456789
\ No newline at end of file
diff --git a/test/escape_sequence_files/t0002j-simple_string.text b/test/escape_sequence_files/t0002j-simple_string.text
new file mode 100644 (file)
index 0000000..097318d
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrstuvwxyz0123456789
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0003-line_wrap.in b/test/escape_sequence_files/t0003-line_wrap.in
new file mode 100644 (file)
index 0000000..d110db8
--- /dev/null
@@ -0,0 +1,83 @@
+a
+ab
+abc
+abcd
+abcde
+abcdef
+abcdefg
+abcdefgh
+abcdefghi
+abcdefghij
+abcdefghijk
+abcdefghijkl
+abcdefghijklm
+abcdefghijklmn
+abcdefghijklmno
+abcdefghijklmnop
+abcdefghijklmnopq
+abcdefghijklmnopqr
+abcdefghijklmnopqrs
+abcdefghijklmnopqrst
+abcdefghijklmnopqrstu
+abcdefghijklmnopqrstuv
+abcdefghijklmnopqrstuvw
+abcdefghijklmnopqrstuvwx
+abcdefghijklmnopqrstuvwxy
+abcdefghijklmnopqrstuvwxyz
+abcdefghijklmnopqrstuvwxyzA
+abcdefghijklmnopqrstuvwxyzAB
+abcdefghijklmnopqrstuvwxyzABC
+abcdefghijklmnopqrstuvwxyzABCD
+abcdefghijklmnopqrstuvwxyzABCDE
+abcdefghijklmnopqrstuvwxyzABCDEF
+abcdefghijklmnopqrstuvwxyzABCDEFG
+abcdefghijklmnopqrstuvwxyzABCDEFGH
+abcdefghijklmnopqrstuvwxyzABCDEFGHI
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJ
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJK
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
diff --git a/test/escape_sequence_files/t0003-line_wrap.text b/test/escape_sequence_files/t0003-line_wrap.text
new file mode 100644 (file)
index 0000000..fbe1c56
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+r
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+rs
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+rst
+
diff --git a/test/escape_sequence_files/t0003j-LF.in b/test/escape_sequence_files/t0003j-LF.in
new file mode 100644 (file)
index 0000000..9f52852
--- /dev/null
@@ -0,0 +1,26 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
diff --git a/test/escape_sequence_files/t0003j-LF.text b/test/escape_sequence_files/t0003j-LF.text
new file mode 100644 (file)
index 0000000..a6210e1
--- /dev/null
@@ -0,0 +1,25 @@
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+
diff --git a/test/escape_sequence_files/t0004-LF.in b/test/escape_sequence_files/t0004-LF.in
new file mode 100644 (file)
index 0000000..4f4aa53
--- /dev/null
@@ -0,0 +1,83 @@
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x
+y
+z
+A
+B
+C
+D
+E
+F
+G
+H
+I
+J
+K
+L
+M
+N
+O
+P
+Q
+R
+S
+T
+U
+V
+W
+X
+Y
+Z
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+0
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
diff --git a/test/escape_sequence_files/t0004-LF.text b/test/escape_sequence_files/t0004-LF.text
new file mode 100644 (file)
index 0000000..3756aca
--- /dev/null
@@ -0,0 +1,25 @@
+7
+8
+9
+0
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+
diff --git a/test/escape_sequence_files/t0004j-CR.in b/test/escape_sequence_files/t0004j-CR.in
new file mode 100644 (file)
index 0000000..d40432d
--- /dev/null
@@ -0,0 +1,7 @@
+1\rx
+ 2\rx
+  3\rx
+   4\rx
+    5\rx
+                                                                              6\rx
+                                                                               7\rx
\ No newline at end of file
diff --git a/test/escape_sequence_files/t0004j-CR.text b/test/escape_sequence_files/t0004j-CR.text
new file mode 100644 (file)
index 0000000..beb0e35
--- /dev/null
@@ -0,0 +1,25 @@
+x
+x2
+x 3
+x  4
+x   5
+x                                                                             6
+x                                                                              7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0005-CR.in b/test/escape_sequence_files/t0005-CR.in
new file mode 100644 (file)
index 0000000..d5f545a
--- /dev/null
@@ -0,0 +1,82 @@
+b\ra\r
+ b\ra\r
+  b\ra\r
+   b\ra\r
+    b\ra\r
+     b\ra\r
+      b\ra\r
+       b\ra\r
+        b\ra\r
+         b\ra\r
+          b\ra\r
+           b\ra\r
+            b\ra\r
+             b\ra\r
+              b\ra\r
+               b\ra\r
+                b\ra\r
+                 b\ra\r
+                  b\ra\r
+                   b\ra\r
+                    b\ra\r
+                     b\ra\r
+                      b\ra\r
+                       b\ra\r
+                        b\ra\r
+                         b\ra\r
+                          b\ra\r
+                           b\ra\r
+                            b\ra\r
+                             b\ra\r
+                              b\ra\r
+                               b\ra\r
+                                b\ra\r
+                                 b\ra\r
+                                  b\ra\r
+                                   b\ra\r
+                                    b\ra\r
+                                     b\ra\r
+                                      b\ra\r
+                                       b\ra\r
+                                        b\ra\r
+                                         b\ra\r
+                                          b\ra\r
+                                           b\ra\r
+                                            b\ra\r
+                                             b\ra\r
+                                              b\ra\r
+                                               b\ra\r
+                                                b\ra\r
+                                                 b\ra\r
+                                                  b\ra\r
+                                                   b\ra\r
+                                                    b\ra\r
+                                                     b\ra\r
+                                                      b\ra\r
+                                                       b\ra\r
+                                                        b\ra\r
+                                                         b\ra\r
+                                                          b\ra\r
+                                                           b\ra\r
+                                                            b\ra\r
+                                                             b\ra\r
+                                                              b\ra\r
+                                                               b\ra\r
+                                                                b\ra\r
+                                                                 b\ra\r
+                                                                  b\ra\r
+                                                                   b\ra\r
+                                                                    b\ra\r
+                                                                     b\ra\r
+                                                                      b\ra\r
+                                                                       b\ra\r
+                                                                        b\ra\r
+                                                                         b\ra\r
+                                                                          b\ra\r
+                                                                           b\ra\r
+                                                                            b\ra\r
+                                                                             b\ra\r
+                                                                              b\ra\r
+                                                                               b\ra\r
+                                                                                b\ra\r
+                                                                                 b\ra\r
diff --git a/test/escape_sequence_files/t0005-CR.text b/test/escape_sequence_files/t0005-CR.text
new file mode 100644 (file)
index 0000000..dfcc049
--- /dev/null
@@ -0,0 +1,25 @@
+a                                                           b
+a                                                            b
+a                                                             b
+a                                                              b
+a                                                               b
+a                                                                b
+a                                                                 b
+a                                                                  b
+a                                                                   b
+a                                                                    b
+a                                                                     b
+a                                                                      b
+a                                                                       b
+a                                                                        b
+a                                                                         b
+a                                                                          b
+a                                                                           b
+a                                                                            b
+a                                                                             b
+a                                                                              b
+                                                                                
+a
+                                                                                
+ab
+
diff --git a/test/escape_sequence_files/t0006-IND.in b/test/escape_sequence_files/t0006-IND.in
new file mode 100644 (file)
index 0000000..614552f
--- /dev/null
@@ -0,0 +1 @@
+a\eDb\eDc\eDd\eDe\eDf\eDg\eDh\eDi\eDj\eDk\eDl\eDm\eDn\eDo\eDp\eDq\eDr\eDs\eDt\eDu\eDv\eDw\eDx\eDy\eDz\eDA\eDB\eDC\eDD\eDE\eDF\eDG\eDH\eDI\eDJ\eDK\eDL\eDM\eDN\eDO\eDP\eDQ\eDR\eDS\eDT\eDU\eDV\eDW\eDX\eDY\eDZ\eD0\eD1\eD2\eD3\eD4\eD5\eD6\eD7\eD8\eD9\eD0\eDa\eDb\eDc\eDd\eDe\eDf\eDg\eDh\eDi\eDj\eDk\eDl\eDm\eDn\eDo\eDp\eDq\eDr\eDs\eDt
diff --git a/test/escape_sequence_files/t0006-IND.text b/test/escape_sequence_files/t0006-IND.text
new file mode 100644 (file)
index 0000000..8c69a7f
--- /dev/null
@@ -0,0 +1,25 @@
+                                                           7
+                                                            8
+                                                             9
+                                                              0
+                                                               a
+                                                                b
+                                                                 c
+                                                                  d
+                                                                   e
+                                                                    f
+                                                                     g
+                                                                      h
+                                                                       i
+                                                                        j
+                                                                         k
+                                                                          l
+                                                                           m
+                                                                            n
+                                                                             o
+                                                                              p
+                                                                               q
+                                                                               r
+                                                                               s
+                                                                               t
+
diff --git a/test/escape_sequence_files/t0007-space_at_end.in b/test/escape_sequence_files/t0007-space_at_end.in
new file mode 100644 (file)
index 0000000..73d19c5
--- /dev/null
@@ -0,0 +1,8 @@
+0 space:
+1 space: 
+2 space:  
+3 space:   
+70 space:                                                                      
+71 space:                                                                       
+72 space:                                                                        
+73 space:                                                                         
diff --git a/test/escape_sequence_files/t0007-space_at_end.text b/test/escape_sequence_files/t0007-space_at_end.text
new file mode 100644 (file)
index 0000000..f46caee
--- /dev/null
@@ -0,0 +1,25 @@
+0 space:
+1 space: 
+2 space:  
+3 space:   
+70 space:                                                                      
+71 space:                                                                       
+72 space:                                                                       
+73 space:                                                                       
+  
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0008-BS.in b/test/escape_sequence_files/t0008-BS.in
new file mode 100644 (file)
index 0000000..0980d87
--- /dev/null
@@ -0,0 +1,7 @@
+abcdefghijklmnopqrstuvwxyz\b\b\b\b\b\b!
+abc\b\b\b\b\b\b@
+\b#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\b\b\b\b\b\b$
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\b\b\b\b\b\b%
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\b\b\b\b\b\b^
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs\b\b\b\b\b\b&
diff --git a/test/escape_sequence_files/t0008-BS.text b/test/escape_sequence_files/t0008-BS.text
new file mode 100644 (file)
index 0000000..77d1710
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrst!vwxyz
+@bc
+#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij$lmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij%lmnopq
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+^
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+&s
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0009-NEL.in b/test/escape_sequence_files/t0009-NEL.in
new file mode 100644 (file)
index 0000000..b541ec4
--- /dev/null
@@ -0,0 +1 @@
+a\eEab\eEabc\eEabcd\eEabcde\eEabcdef\eEabcdefg\eEabcdefgh\eEabcdefghi\eEabcdefghij\eEabcdefghijk\eEabcdefghijkl\eEabcdefghijklm\eEabcdefghijklmn\eEabcdefghijklmno\eEabcdefghijklmnop\eEabcdefghijklmnopq\eEabcdefghijklmnopqr\eEabcdefghijklmnopqrs\eEabcdefghijklmnopqrst\eEabcdefghijklmnopqrstu\eEabcdefghijklmnopqrstuv\eEabcdefghijklmnopqrstuvw\eEabcdefghijklmnopqrstuvwx\eEabcdefghijklmnopqrstuvwxy\eEabcdefghijklmnopqrstuvwxyz\eEabcdefghijklmnopqrstuvwxyzA\eEabcdefghijklmnopqrstuvwxyzAB\eEabcdefghijklmnopqrstuvwxyzABC\eEabcdefghijklmnopqrstuvwxyzABCD\eEabcdefghijklmnopqrstuvwxyzABCDE\eEabcdefghijklmnopqrstuvwxyzABCDEF\eEabcdefghijklmnopqrstuvwxyzABCDEFG\eEabcdefghijklmnopqrstuvwxyzABCDEFGH\eEabcdefghijklmnopqrstuvwxyzABCDEFGHI\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJ\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJK\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKL\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQR\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345678\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrs\eEabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqrst
diff --git a/test/escape_sequence_files/t0009-NEL.text b/test/escape_sequence_files/t0009-NEL.text
new file mode 100644 (file)
index 0000000..fbe1c56
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890a
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890ab
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abc
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdef
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghij
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijk
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+r
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+rs
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+rst
+
diff --git a/test/escape_sequence_files/t0010-RI.in b/test/escape_sequence_files/t0010-RI.in
new file mode 100644 (file)
index 0000000..c2aeb67
--- /dev/null
@@ -0,0 +1,10 @@
+a
+b
+c
+d\eMe\eMf\eMg
+h
+i
+j....................................................................k\eMl\eMm\eMn
+
+
+
diff --git a/test/escape_sequence_files/t0010-RI.text b/test/escape_sequence_files/t0010-RI.text
new file mode 100644 (file)
index 0000000..5320654
--- /dev/null
@@ -0,0 +1,25 @@
+a  g                                                                    n
+h f                                                                    m
+ie                                                                    l
+j....................................................................k
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0011-RI_scroll.in b/test/escape_sequence_files/t0011-RI_scroll.in
new file mode 100644 (file)
index 0000000..14da12d
--- /dev/null
@@ -0,0 +1,47 @@
+And the third.\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This should be the last line.\r
+This one should be lost.\r
+This one's a goner, too.\r\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eMThis is second line.\r\eMThis should be the first line.\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0011-RI_scroll.text b/test/escape_sequence_files/t0011-RI_scroll.text
new file mode 100644 (file)
index 0000000..21cb1cf
--- /dev/null
@@ -0,0 +1,25 @@
+This should be the first line.
+This is second line.
+And the third.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+This should be the last line.
+This one should be lost.
diff --git a/test/escape_sequence_files/t0012-VT.in b/test/escape_sequence_files/t0012-VT.in
new file mode 100644 (file)
index 0000000..ee56208
--- /dev/null
@@ -0,0 +1 @@
+a\vb\vc\vd\ve\vf\vg\vh\vi\vj\vk\vl\vm\vn\vo\vp\vq\vr\vs\vt\vu\vv\vw\vx\vy\vz\vA\vB\vC\vD\vE\vF\vG\vH\vI\vJ\vK\vL\vM\vN\vO\vP\vQ\vR\vS\vT\vU\vV\vW\vX\vY\vZ\v0\v1\v2\v3\v4\v5\v6\v7\v8\v9\v0\va\vb\vc\vd\ve\vf\vg\vh\vi\vj\vk\vl\vm\vn\vo\vp\vq\vr\vs\vt\r\v
\ No newline at end of file
diff --git a/test/escape_sequence_files/t0012-VT.text b/test/escape_sequence_files/t0012-VT.text
new file mode 100644 (file)
index 0000000..8c69a7f
--- /dev/null
@@ -0,0 +1,25 @@
+                                                           7
+                                                            8
+                                                             9
+                                                              0
+                                                               a
+                                                                b
+                                                                 c
+                                                                  d
+                                                                   e
+                                                                    f
+                                                                     g
+                                                                      h
+                                                                       i
+                                                                        j
+                                                                         k
+                                                                          l
+                                                                           m
+                                                                            n
+                                                                             o
+                                                                              p
+                                                                               q
+                                                                               r
+                                                                               s
+                                                                               t
+
diff --git a/test/escape_sequence_files/t0013-FF.in b/test/escape_sequence_files/t0013-FF.in
new file mode 100644 (file)
index 0000000..01198c2
--- /dev/null
@@ -0,0 +1 @@
+a\fb\fc\fd\fe\ff\fg\fh\fi\fj\fk\fl\fm\fn\fo\fp\fq\fr\fs\ft\fu\fv\fw\fx\fy\fz\fA\fB\fC\fD\fE\fF\fG\fH\fI\fJ\fK\fL\fM\fN\fO\fP\fQ\fR\fS\fT\fU\fV\fW\fX\fY\fZ\f0\f1\f2\f3\f4\f5\f6\f7\f8\f9\f0\fa\fb\fc\fd\fe\ff\fg\fh\fi\fj\fk\fl\fm\fn\fo\fp\fq\fr\fs\ft\r\f
diff --git a/test/escape_sequence_files/t0013-FF.text b/test/escape_sequence_files/t0013-FF.text
new file mode 100644 (file)
index 0000000..16c9c2b
--- /dev/null
@@ -0,0 +1,25 @@
+                                                            8
+                                                             9
+                                                              0
+                                                               a
+                                                                b
+                                                                 c
+                                                                  d
+                                                                   e
+                                                                    f
+                                                                     g
+                                                                      h
+                                                                       i
+                                                                        j
+                                                                         k
+                                                                          l
+                                                                           m
+                                                                            n
+                                                                             o
+                                                                              p
+                                                                               q
+                                                                               r
+                                                                               s
+                                                                               t
+
+
diff --git a/test/escape_sequence_files/t0014-CAN.in b/test/escape_sequence_files/t0014-CAN.in
new file mode 100644 (file)
index 0000000..64bae4a
--- /dev/null
@@ -0,0 +1,8 @@
+abcd\18Defgh\r
+abcd\e\18Defgh\r
+abcd\e!\18Defgh\r
+abcd\e!*\18Defgh\r
+abcd\e[\18Defgh\r
+abcd\e[!\18Defgh\r
+abcd\e[2\18Defgh\r
+abcd\e[*2;\18Defgh\r
diff --git a/test/escape_sequence_files/t0014-CAN.text b/test/escape_sequence_files/t0014-CAN.text
new file mode 100644 (file)
index 0000000..77a38fa
--- /dev/null
@@ -0,0 +1,25 @@
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0015-SUB.in b/test/escape_sequence_files/t0015-SUB.in
new file mode 100644 (file)
index 0000000..1bd237f
--- /dev/null
@@ -0,0 +1,8 @@
+abcd\1aDefgh\r
+abcd\e\1aDefgh\r
+abcd\e!\1aDefgh\r
+abcd\e!*\1aDefgh\r
+abcd\e[\1aDefgh\r
+abcd\e[!\1aDefgh\r
+abcd\e[2\1aDefgh\r
+abcd\e[*2;\1aDefgh\r
diff --git a/test/escape_sequence_files/t0015-SUB.text b/test/escape_sequence_files/t0015-SUB.text
new file mode 100644 (file)
index 0000000..77a38fa
--- /dev/null
@@ -0,0 +1,25 @@
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+abcdDefgh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0016-SU.in b/test/escape_sequence_files/t0016-SU.in
new file mode 100644 (file)
index 0000000..7e52573
--- /dev/null
@@ -0,0 +1,17 @@
+Hello\e[SGoodbye
+
+Up\e[3SDown
+x
+\e[2S
+-----------------------------------------------------------------------------\e[Sx
+------------------------------------------------------------------------------\e[Sx
+-------------------------------------------------------------------------------\e[Sx
+--------------------------------------------------------------------------------\e[Sx
+---------------------------------------------------------------------------------\e[Sx
+.............................................................................\e[S\bx
+..............................................................................\e[S\bx
+...............................................................................\e[S\bx
+................................................................................\e[S\bx
+.................................................................................\e[S\bx
+\e[30S
+The End.
diff --git a/test/escape_sequence_files/t0016-SU.text b/test/escape_sequence_files/t0016-SU.text
new file mode 100644 (file)
index 0000000..2323fa3
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+The End.
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0017-SD.in b/test/escape_sequence_files/t0017-SD.in
new file mode 100644 (file)
index 0000000..ce76440
--- /dev/null
@@ -0,0 +1,54 @@
+A
+ B
+  C
+   D
+    E
+     F
+      G
+       H
+        I
+         J
+          K
+           L
+            M
+             N
+              O
+               P
+                Q
+                 R
+                  S
+                   T
+                    U
+                     V
+                      W
+                       X\e[3S
+a
+ b
+  c
+   d
+    e\e[3T
+     f
+      g
+       h
+------------------------------------------------------------------------------\e[T1
+
+
+-------------------------------------------------------------------------------\e[T2
+
+
+--------------------------------------------------------------------------------\e[T3
+
+
+---------------------------------------------------------------------------------\e[T4
+
+
+..............................................................................\e[T\b5
+
+
+...............................................................................\e[T\b6
+
+
+................................................................................\e[T\b7
+
+
+.................................................................................\e[T\b8
diff --git a/test/escape_sequence_files/t0017-SD.text b/test/escape_sequence_files/t0017-SD.text
new file mode 100644 (file)
index 0000000..6e39cd9
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+a
+ b
+     f
+      g
+       h                                                                      1
+
+                                                                               2
+
+
+3
+
+
+-4------------------------------------------------------------------------------
+
+                                                                             5
+
+                                                                              6
+
+                                                                              7
+
+
+8...............................................................................
+
diff --git a/test/escape_sequence_files/t0020-CUF.in b/test/escape_sequence_files/t0020-CUF.in
new file mode 100644 (file)
index 0000000..9df6cd7
--- /dev/null
@@ -0,0 +1,14 @@
+abcdefg\e[Chijkl
+abcdefg\e[10Chijkl
+abcdefg\e[10;3Chijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno\e[C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\e[C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[3C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[4C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[5C@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[6C@
+\e[79Cx
+\e[80Cx
+abcd\e[10C
diff --git a/test/escape_sequence_files/t0020-CUF.text b/test/escape_sequence_files/t0020-CUF.text
new file mode 100644 (file)
index 0000000..b868261
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefg hijkl
+abcdefg          hijkl
+abcdefg          hijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+r @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+                                                                               x
+                                                                               x
+abcd
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0021-CUB.in b/test/escape_sequence_files/t0021-CUB.in
new file mode 100644 (file)
index 0000000..b07f753
--- /dev/null
@@ -0,0 +1,8 @@
+abcdefg\e[D!@
+abcdefg\e[10D!@
+abcdefg\e[2;3D!@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno\e[D@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[D@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[D@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\e[D@
+\e[Dx
diff --git a/test/escape_sequence_files/t0021-CUB.text b/test/escape_sequence_files/t0021-CUB.text
new file mode 100644 (file)
index 0000000..9a1b385
--- /dev/null
@@ -0,0 +1,25 @@
+abcdef!@
+!@cdefg
+abcde!@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmn@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@q
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+@
+x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0022-CUU.in b/test/escape_sequence_files/t0022-CUU.in
new file mode 100644 (file)
index 0000000..4c47f30
--- /dev/null
@@ -0,0 +1,25 @@
+a
+b
+c
+d\e[Ae\e[Af\e[Ag
+h
+i
+j....................................................................k\e[Al\e[Am\e[An
+
+
+
+
+
+
+
+
+
+
+
+\e[0A0\e[1A1\e[2A2\e[3;5A3
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0022-CUU.text b/test/escape_sequence_files/t0022-CUU.text
new file mode 100644 (file)
index 0000000..b786ade
--- /dev/null
@@ -0,0 +1,25 @@
+a  g                                                                    n
+h f                                                                    m
+ie                                                                    l
+j....................................................................k
+
+   3
+
+
+  2
+
+ 1
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0023-CUU_scroll.in b/test/escape_sequence_files/t0023-CUU_scroll.in
new file mode 100644 (file)
index 0000000..e0c9243
--- /dev/null
@@ -0,0 +1,50 @@
+This is the first line.\r
+This is the second line.\r
+And the third.\r
+This line should be deleted.\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Penultimate line.\r
+This should be the last line.\r\e[36AI have gone up all the way...\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0023-CUU_scroll.text b/test/escape_sequence_files/t0023-CUU_scroll.text
new file mode 100644 (file)
index 0000000..96b8726
--- /dev/null
@@ -0,0 +1,25 @@
+I have gone up all the way...
+This line should be deleted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Penultimate line.
+This should be the last line.
diff --git a/test/escape_sequence_files/t0024-CUD.in b/test/escape_sequence_files/t0024-CUD.in
new file mode 100644 (file)
index 0000000..e971bbe
--- /dev/null
@@ -0,0 +1,24 @@
+a\r
+b\r
+c\r
+d\r
+e\r
+f\r
+g\r
+h\r
+i\r
+j\r
+k\r
+l\r
+m\r
+n\r
+o\r
+p\r
+q\r
+r\r
+s\r
+t\r
+u\r
+v\r
+w\r
+x\e[23A0\e[B1\e[0B2\e[1B3\e[2B4\e[3;5B5\e[100BBottom line.\r\e[8A\e[78CA\e[BB\e[BC\e[BD\e[BE\r\e[6B\r
diff --git a/test/escape_sequence_files/t0024-CUD.text b/test/escape_sequence_files/t0024-CUD.text
new file mode 100644 (file)
index 0000000..622c0b0
--- /dev/null
@@ -0,0 +1,25 @@
+b 1
+c  2
+d   3
+e
+f    4
+g
+h
+i     5
+j
+k
+l
+m
+n
+o
+p
+q                                                                             A
+r                                                                              B
+s                                                                              C
+t                                                                              D
+u                                                                              E
+v
+w
+x
+       Bottom line.
+
diff --git a/test/escape_sequence_files/t0025-CUP.in b/test/escape_sequence_files/t0025-CUP.in
new file mode 100644 (file)
index 0000000..b62631e
--- /dev/null
@@ -0,0 +1 @@
+\e[Ha\e[2;3Hb\e[;4Hc\e[10;10Hd\e[5He\e[40;16Hf\e[20;100Hg\e[100;200H
diff --git a/test/escape_sequence_files/t0025-CUP.text b/test/escape_sequence_files/t0025-CUP.text
new file mode 100644 (file)
index 0000000..44dc619
--- /dev/null
@@ -0,0 +1,25 @@
+  b
+
+
+e
+
+
+
+
+         d
+
+
+
+
+
+
+
+
+
+                                                                               g
+
+
+
+
+               f
+
diff --git a/test/escape_sequence_files/t0026-CNL.in b/test/escape_sequence_files/t0026-CNL.in
new file mode 100644 (file)
index 0000000..8318682
--- /dev/null
@@ -0,0 +1,2 @@
+abc\e[Edef\e[5Eghi\r\r
+-------------------------------------------------------------------------abcdefg\e[Ehij\e[100Elast line\r
diff --git a/test/escape_sequence_files/t0026-CNL.text b/test/escape_sequence_files/t0026-CNL.text
new file mode 100644 (file)
index 0000000..61ac27e
--- /dev/null
@@ -0,0 +1,25 @@
+def
+
+
+
+
+ghi
+-------------------------------------------------------------------------abcdefg
+hij
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+last line
+
diff --git a/test/escape_sequence_files/t0027-CPL.in b/test/escape_sequence_files/t0027-CPL.in
new file mode 100644 (file)
index 0000000..edafc49
--- /dev/null
@@ -0,0 +1,6 @@
+erased\e[Freplacement
+
+
+line four\e[2Fline two
+
+
diff --git a/test/escape_sequence_files/t0027-CPL.text b/test/escape_sequence_files/t0027-CPL.text
new file mode 100644 (file)
index 0000000..847ed7c
--- /dev/null
@@ -0,0 +1,25 @@
+replacement
+line two
+
+line four
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0030-HPR.in b/test/escape_sequence_files/t0030-HPR.in
new file mode 100644 (file)
index 0000000..485720f
--- /dev/null
@@ -0,0 +1,14 @@
+abcdefg\e[ahijkl
+abcdefg\e[10ahijkl
+abcdefg\e[10;3ahijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno\e[a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\e[a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[3a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[4a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[5a@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm\e[6a@
+\e[79ax
+\e[80ax
+abcd\e[10a
diff --git a/test/escape_sequence_files/t0030-HPR.text b/test/escape_sequence_files/t0030-HPR.text
new file mode 100644 (file)
index 0000000..b868261
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefg hijkl
+abcdefg          hijkl
+abcdefg          hijkl
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+r @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklm   @
+                                                                               x
+                                                                               x
+abcd
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0031-HPB.in_ b/test/escape_sequence_files/t0031-HPB.in_
new file mode 100644 (file)
index 0000000..13de738
--- /dev/null
@@ -0,0 +1,8 @@
+abcdefg\e[j!@
+abcdefg\e[10j!@
+abcdefg\e[2;3j!@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno\e[j@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[j@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[j@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopqr\e[j@
+\e[jx
diff --git a/test/escape_sequence_files/t0031-HPB.text b/test/escape_sequence_files/t0031-HPB.text
new file mode 100644 (file)
index 0000000..9ec4087
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefg!@
+abcdefg!@
+abcdefg!@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmno@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq
+r@
+x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0032-VPB.in b/test/escape_sequence_files/t0032-VPB.in
new file mode 100644 (file)
index 0000000..30dd002
--- /dev/null
@@ -0,0 +1,25 @@
+a
+b
+c
+d\e[ke\e[kf\e[kg
+h
+i
+j....................................................................k\e[kl\e[km\e[kn
+
+
+
+
+
+
+
+
+
+
+
+\e[0k0\e[1k1\e[2k2\e[3;5k3
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0032-VPB.text b/test/escape_sequence_files/t0032-VPB.text
new file mode 100644 (file)
index 0000000..15f0d67
--- /dev/null
@@ -0,0 +1,25 @@
+b
+c
+defg
+h
+i
+j....................................................................klmn
+
+
+
+
+
+
+
+
+
+
+
+0123
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0033-VPB_scroll.in b/test/escape_sequence_files/t0033-VPB_scroll.in
new file mode 100644 (file)
index 0000000..f58db4b
--- /dev/null
@@ -0,0 +1,50 @@
+This is the first line.\r
+This is the second line.\r
+And the third.\r
+This line should be deleted.\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Penultimate line.\r
+This should be the last line.\r\e[36kI have gone up all the way...\r
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0033-VPB_scroll.text b/test/escape_sequence_files/t0033-VPB_scroll.text
new file mode 100644 (file)
index 0000000..0b20185
--- /dev/null
@@ -0,0 +1,25 @@
+I have gone up all the way...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0034-VPR.in b/test/escape_sequence_files/t0034-VPR.in
new file mode 100644 (file)
index 0000000..b9dc145
--- /dev/null
@@ -0,0 +1,24 @@
+a\r
+b\r
+c\r
+d\r
+e\r
+f\r
+g\r
+h\r
+i\r
+j\r
+k\r
+l\r
+m\r
+n\r
+o\r
+p\r
+q\r
+r\r
+s\r
+t\r
+u\r
+v\r
+w\r
+x\e[23A0\e[e1\e[0e2\e[1e3\e[2e4\e[3;5e5\e[100eBottom line.\r\e[8A\e[78CA\e[eB\e[eC\e[eD\e[eE\r\e[6e\r
diff --git a/test/escape_sequence_files/t0034-VPR.text b/test/escape_sequence_files/t0034-VPR.text
new file mode 100644 (file)
index 0000000..622c0b0
--- /dev/null
@@ -0,0 +1,25 @@
+b 1
+c  2
+d   3
+e
+f    4
+g
+h
+i     5
+j
+k
+l
+m
+n
+o
+p
+q                                                                             A
+r                                                                              B
+s                                                                              C
+t                                                                              D
+u                                                                              E
+v
+w
+x
+       Bottom line.
+
diff --git a/test/escape_sequence_files/t0035-HVP.in b/test/escape_sequence_files/t0035-HVP.in
new file mode 100644 (file)
index 0000000..781dfdb
--- /dev/null
@@ -0,0 +1 @@
+\e[fa\e[2;3fb\e[;4fc\e[10;10fd\e[5fe\e[40;16ff\e[20;100fg\e[100;200f
diff --git a/test/escape_sequence_files/t0035-HVP.text b/test/escape_sequence_files/t0035-HVP.text
new file mode 100644 (file)
index 0000000..44dc619
--- /dev/null
@@ -0,0 +1,25 @@
+  b
+
+
+e
+
+
+
+
+         d
+
+
+
+
+
+
+
+
+
+                                                                               g
+
+
+
+
+               f
+
diff --git a/test/escape_sequence_files/t0040-REP.in b/test/escape_sequence_files/t0040-REP.in
new file mode 100644 (file)
index 0000000..f1abf45
--- /dev/null
@@ -0,0 +1,7 @@
+x\e[5b
+\e[3b<
+abcdefg\e[3D\e[b
+abcdefg\e[3D\e[b!
+                                                                       @\e[20b
+                                                                               .\e[4b
+                                                                               ?\e[0b-
diff --git a/test/escape_sequence_files/t0040-REP.text b/test/escape_sequence_files/t0040-REP.text
new file mode 100644 (file)
index 0000000..cae1ef9
--- /dev/null
@@ -0,0 +1,25 @@
+xxxxxx
+<
+abcdefg
+abcd!fg
+                                                                       @@@@@@@@@
+@@@@@@@@@@@@
+                                                                               .
+....
+                                                                               ?
+?-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0050-ICH.in b/test/escape_sequence_files/t0050-ICH.in
new file mode 100644 (file)
index 0000000..a629f20
--- /dev/null
@@ -0,0 +1,23 @@
+abcdefghijklmnopqrstuvwxyz\b\b\b\b\b\e[15@
+abcdefghijklmnopqrstuvwxyz\b\b\b\b\b\e[80@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[17@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[18@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[19@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[20@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[21@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[5@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[5@
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\e[5@
+ICH at end:\e[5@
+
+abcdefghijklmnopqrstuvwxyz\b\b\b\b\b\e[15@!@#
+abcdefghijklmnopqrstuvwxyz\b\b\b\b\b\e[80@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[17@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[18@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[19@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[20@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\b\b\e[21@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop\e[5@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\e[5@!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnopq\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\e[5@!@#
+ICH at end:\e[5@!@#
diff --git a/test/escape_sequence_files/t0050-ICH.text b/test/escape_sequence_files/t0050-ICH.text
new file mode 100644 (file)
index 0000000..d787b8d
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrstu
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567                 89
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567                  89
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567                   8
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW     XYZ01234567890abcdefghijkl
+ICH at end:
+
+abcdefghijklmnopqrstu!@#            vwxyz
+abcdefghijklmnopqrstu!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@#              89
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@#               89
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@#                8
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567!@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop!
+@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghijklmnop!
+@#
+abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW!@#  XYZ01234567890abcdefghijkl
+ICH at end:!@#
+
diff --git a/test/escape_sequence_files/t0051-IL.in b/test/escape_sequence_files/t0051-IL.in
new file mode 100644 (file)
index 0000000..e66a242
--- /dev/null
@@ -0,0 +1,23 @@
+ab\r
+cd\r
+ef\r
+gh\r
+ij\r
+kl\r
+mn\r
+op\e[2A\e[LQR\e[3A\e[4LST\e[10B\r
+1\r
+2\r
+3\r
+4\r
+5\e[A------------------------------------------------------------------------------a\e[Lb\e[2B\r\r
+6\r
+7\r
+8\r
+9\r
+10\r
+11\r
+12\r
+13\r
+14\r
+15\e[4A\e[3L\e[100B\r
diff --git a/test/escape_sequence_files/t0051-IL.text b/test/escape_sequence_files/t0051-IL.text
new file mode 100644 (file)
index 0000000..2d0f595
--- /dev/null
@@ -0,0 +1,25 @@
+
+ef
+gh
+ij
+QR
+kl
+mn
+op
+1
+2
+3
+b
+4------------------------------------------------------------------------------a
+5
+6
+7
+8
+9
+10
+
+
+
+11
+12
+
diff --git a/test/escape_sequence_files/t0052-DL.in b/test/escape_sequence_files/t0052-DL.in
new file mode 100644 (file)
index 0000000..b5a5fe0
--- /dev/null
@@ -0,0 +1,15 @@
+a
+b
+c
+d
+e
+f
+g
+h\e[4A\e[2Mijklmnop\r
+
+
+1
+2
+3
+4\e[2A\r\e[79C\e[Mx\r
+
diff --git a/test/escape_sequence_files/t0052-DL.text b/test/escape_sequence_files/t0052-DL.text
new file mode 100644 (file)
index 0000000..10d24aa
--- /dev/null
@@ -0,0 +1,25 @@
+a
+b
+c
+ijklmnop
+g
+h
+1
+x
+4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0053-DCH.in b/test/escape_sequence_files/t0053-DCH.in
new file mode 100644 (file)
index 0000000..d1f8807
--- /dev/null
@@ -0,0 +1,12 @@
+abcdefghijklmnopqrstuvwxyz\e[8D>\e[2P
+abcdefghijklmnopqrstuvwxyz\e[8D>\e[2P!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[80D>\e[10P!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D>\e[10P!
+------------------------------------------------------------------------------\e[P?
+-------------------------------------------------------------------------------\e[P?
+-------------------------------------------------------------------------------\e[P?
+---------------------------------------------------------------------------------\e[P?
+..............................................................................\e[P
+...............................................................................\e[P
+...............................................................................\e[P
+.................................................................................\e[P
diff --git a/test/escape_sequence_files/t0053-DCH.text b/test/escape_sequence_files/t0053-DCH.text
new file mode 100644 (file)
index 0000000..75c6b3b
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqr>vwxyz
+abcdefghijklmnopqr>!wxyz
+>!mnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh
+abcdefghijklmnopqrstuvwxyz0123456789ABC>!PQRSTUVWXYZ0123456789abcdefgh
+------------------------------------------------------------------------------?
+-------------------------------------------------------------------------------?
+-------------------------------------------------------------------------------?
+--------------------------------------------------------------------------------
+-?
+..............................................................................
+...............................................................................
+...............................................................................
+................................................................................
+.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0054-ECH.in b/test/escape_sequence_files/t0054-ECH.in
new file mode 100644 (file)
index 0000000..03a00d8
--- /dev/null
@@ -0,0 +1,12 @@
+abcdefghijklmnopqrstuvwxyz\e[8D>\e[2X
+abcdefghijklmnopqrstuvwxyz\e[8D>\e[2X!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[80D>\e[10X!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D>\e[10X!
+------------------------------------------------------------------------------\e[X?
+-------------------------------------------------------------------------------\e[X?
+-------------------------------------------------------------------------------\e[X?
+---------------------------------------------------------------------------------\e[X?
+..............................................................................\e[X
+...............................................................................\e[X
+...............................................................................\e[X
+.................................................................................\e[X
diff --git a/test/escape_sequence_files/t0054-ECH.text b/test/escape_sequence_files/t0054-ECH.text
new file mode 100644 (file)
index 0000000..a22cfbe
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqr>  vwxyz
+abcdefghijklmnopqr>! vwxyz
+>!         lmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh
+abcdefghijklmnopqrstuvwxyz0123456789ABC>!         OPQRSTUVWXYZ0123456789abcdefgh
+------------------------------------------------------------------------------?
+-------------------------------------------------------------------------------?
+-------------------------------------------------------------------------------?
+--------------------------------------------------------------------------------
+-?
+..............................................................................
+...............................................................................
+...............................................................................
+................................................................................
+.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0055-EL.in b/test/escape_sequence_files/t0055-EL.in
new file mode 100644 (file)
index 0000000..014658c
--- /dev/null
@@ -0,0 +1,8 @@
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[K
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[0K
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[1K
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[2K
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[K!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[1K!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[40D><\b\e[2K!
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh\e[K!
diff --git a/test/escape_sequence_files/t0055-EL.text b/test/escape_sequence_files/t0055-EL.text
new file mode 100644 (file)
index 0000000..a248f3b
--- /dev/null
@@ -0,0 +1,25 @@
+abcdefghijklmnopqrstuvwxyz0123456789ABC>
+abcdefghijklmnopqrstuvwxyz0123456789ABC>
+                                         FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh
+
+abcdefghijklmnopqrstuvwxyz0123456789ABC>!
+                                        !FGHIJKLMNOPQRSTUVWXYZ0123456789abcdefgh
+                                        !
+abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefg!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0056-ED.in b/test/escape_sequence_files/t0056-ED.in
new file mode 100644 (file)
index 0000000..fca4e54
--- /dev/null
@@ -0,0 +1,62 @@
+a
+ab
+abc
+abcd
+abcde
+abcdef
+abcdefg
+abcdefgh
+abcdefghi
+abcdefghij
+abcdefghijk
+abcdefghijkl
+abcdefghijklm
+abcdefghijklmn
+abcdefghijklmno
+abcdefghijklmnop
+abcdefghijklmnopq
+abcdefghijklmnopqr
+abcdefghijklmnopqrs
+abcdefghijklmnopqrst
+abcdefghijklmnopqrstu
+abcdefghijklmnopqrstuv
+abcdefghijklmnopqrstuvw
+abcdefghijklmnopqrstuvwx
+abcdefghijklmnopqrstuvwxy
+abcdefghijklmnopqrstuvwxyz\e[20D\e[5A\e[J\e[10A\e[1J\e[40B
+A
+AB
+ABC
+ABCD
+ABCDE
+ABCDEF
+ABCDEFG
+ABCDEFGH
+ABCDEFGHI
+ABCDEFGHIJ
+ABCDEFGHIJK
+ABCDEFGHIJKL
+ABCDEFGHIJKLM
+ABCDEFGHIJKLMN
+ABCDEFGHIJKLMNO
+ABCDEFGHIJKLMNOP
+ABCDEFGHIJKLMNOPQ
+ABCDEFGHIJKLMNOPQR
+ABCDEFGHIJKLMNOPQRS
+ABCDEFGHIJKLMNOPQRST
+ABCDEFGHIJKLMNOPQRSTU
+ABCDEFGHIJKLMNOPQRSTUV
+ABCDEFGHIJKLMNOPQRSTUVW
+ABCDEFGHIJKLMNOPQRSTUVWX
+ABCDEFGHIJKLMNOPQRSTUVWXY\e[20D\e[2J!
+\e[30B
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\e[3Av\e[B\e[J^
+
+
+
+the end
diff --git a/test/escape_sequence_files/t0056-ED.text b/test/escape_sequence_files/t0056-ED.text
new file mode 100644 (file)
index 0000000..61a8ac7
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+     !
+
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^
+
+
+
+the end
+
diff --git a/test/escape_sequence_files/t0057-ED3.in b/test/escape_sequence_files/t0057-ED3.in
new file mode 100644 (file)
index 0000000..46606df
--- /dev/null
@@ -0,0 +1,55 @@
+a
+ab
+abc
+abcd
+abcde
+abcdef
+abcdefg
+abcdefgh
+abcdefghi
+abcdefghij
+abcdefghijk
+abcdefghijkl
+abcdefghijklm
+abcdefghijklmn
+abcdefghijklmno
+abcdefghijklmnop
+abcdefghijklmnopq
+abcdefghijklmnopqr
+abcdefghijklmnopqrs
+abcdefghijklmnopqrst
+abcdefghijklmnopqrstu
+abcdefghijklmnopqrstuv
+abcdefghijklmnopqrstuvw
+abcdefghijklmnopqrstuvwx
+abcdefghijklmnopqrstuvwxy
+abcdefghijklmnopqrstuvwxyz
+A
+AB
+ABC
+ABCD
+ABCDE
+ABCDEF
+ABCDEFG
+ABCDEFGH
+ABCDEFGHI
+ABCDEFGHIJ
+ABCDEFGHIJK
+ABCDEFGHIJKL
+ABCDEFGHIJKLM
+ABCDEFGHIJKLMN
+ABCDEFGHIJKLMNO
+ABCDEFGHIJKLMNOP
+ABCDEFGHIJKLMNOPQ
+ABCDEFGHIJKLMNOPQR
+ABCDEFGHIJKLMNOPQRS
+ABCDEFGHIJKLMNOPQRST
+ABCDEFGHIJKLMNOPQRSTU
+ABCDEFGHIJKLMNOPQRSTUV
+ABCDEFGHIJKLMNOPQRSTUVW
+ABCDEFGHIJKLMNOPQRSTUVWX
+ABCDEFGHIJKLMNOPQRSTUVWXY\e[3J
+this
+is
+the
+end
diff --git a/test/escape_sequence_files/t0057-ED3.note b/test/escape_sequence_files/t0057-ED3.note
new file mode 100644 (file)
index 0000000..ca6d940
--- /dev/null
@@ -0,0 +1,6 @@
+Xterm behaves oddly with CSI 3 J.  This function is supposed to clear the
+saved lines in history.  Xterm does this, but a small number of lines of
+history are not cleared.  The number seems to vary with how high the window is
+and how much output has recently been saved.  There is no reason to simulate
+this behavior, so the expected outputs are as if the entire history was
+erased.
diff --git a/test/escape_sequence_files/t0057-ED3.text b/test/escape_sequence_files/t0057-ED3.text
new file mode 100644 (file)
index 0000000..8230921
--- /dev/null
@@ -0,0 +1,25 @@
+ABCDEF
+ABCDEFG
+ABCDEFGH
+ABCDEFGHI
+ABCDEFGHIJ
+ABCDEFGHIJK
+ABCDEFGHIJKL
+ABCDEFGHIJKLM
+ABCDEFGHIJKLMN
+ABCDEFGHIJKLMNO
+ABCDEFGHIJKLMNOP
+ABCDEFGHIJKLMNOPQ
+ABCDEFGHIJKLMNOPQR
+ABCDEFGHIJKLMNOPQRS
+ABCDEFGHIJKLMNOPQRST
+ABCDEFGHIJKLMNOPQRSTU
+ABCDEFGHIJKLMNOPQRSTUV
+ABCDEFGHIJKLMNOPQRSTUVW
+ABCDEFGHIJKLMNOPQRSTUVWX
+ABCDEFGHIJKLMNOPQRSTUVWXY
+this
+is
+the
+end
+
diff --git a/test/escape_sequence_files/t0060-DECSC.in b/test/escape_sequence_files/t0060-DECSC.in
new file mode 100644 (file)
index 0000000..d269150
--- /dev/null
@@ -0,0 +1,9 @@
+          \e7v    1\e[S\b2
+
+3\e8^
+
+
+
+                                                                               v\e7
+...\e[Sooo\e8^
+
diff --git a/test/escape_sequence_files/t0060-DECSC.text b/test/escape_sequence_files/t0060-DECSC.text
new file mode 100644 (file)
index 0000000..409198b
--- /dev/null
@@ -0,0 +1,25 @@
+
+3
+
+                                                                               v
+...                                                                            ^
+   ooo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0061-CSI_s.in b/test/escape_sequence_files/t0061-CSI_s.in
new file mode 100644 (file)
index 0000000..451fafa
--- /dev/null
@@ -0,0 +1,9 @@
+          \e[sv    1\e[S\b2
+
+3\e[u^
+
+
+
+                                                                               v\e[s
+...\e[Sooo\e[u^
+
diff --git a/test/escape_sequence_files/t0061-CSI_s.text b/test/escape_sequence_files/t0061-CSI_s.text
new file mode 100644 (file)
index 0000000..409198b
--- /dev/null
@@ -0,0 +1,25 @@
+
+3
+
+                                                                               v
+...                                                                            ^
+   ooo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.in b/test/escape_sequence_files/t0070-DECSTBM_LF.in
new file mode 100644 (file)
index 0000000..571f223
--- /dev/null
@@ -0,0 +1,31 @@
+\e[3;7r1
+2
+3
+4
+5
+6
+7
+8
+9\e[78GABCDEF\e[8da
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u\e[78Gvwxyz
+\e[r\e[24d
+The end.
diff --git a/test/escape_sequence_files/t0070-DECSTBM_LF.text b/test/escape_sequence_files/t0070-DECSTBM_LF.text
new file mode 100644 (file)
index 0000000..0940b07
--- /dev/null
@@ -0,0 +1,25 @@
+1
+ 2
+     6
+      7
+       8
+        9                                                                    ABC
+DEF
+   a
+    b
+     c
+      d
+       e
+        f
+         g
+          h
+           i
+            j
+             k
+              l
+               m
+                n
+                 o
+                  p
+yz                 qrstu                                                     vwx
+The end.
diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.in b/test/escape_sequence_files/t0071-DECSTBM_IND.in
new file mode 100644 (file)
index 0000000..f9f6a42
--- /dev/null
@@ -0,0 +1,3 @@
+\e[3;7r1\eD2\eD3\eD4\eD5\eD6\eD7\eD8\eD9\e[78GABCDEF\e[8da\eDb\eDc\eDd\eDe\eDf\eDg\eDh\eDi\eDj\eDk\eDl\eDm\eDn\eDo\eDp\eDq\eDr\eDs\eDt\eDu\e[78Gvwxyz
+\e[r\e[24d
+The end.
diff --git a/test/escape_sequence_files/t0071-DECSTBM_IND.text b/test/escape_sequence_files/t0071-DECSTBM_IND.text
new file mode 100644 (file)
index 0000000..f6644fb
--- /dev/null
@@ -0,0 +1,25 @@
+ 2
+     6
+      7
+       8
+        9                                                                    ABC
+DEF
+   a
+    b
+     c
+      d
+       e
+        f
+         g
+          h
+           i
+            j
+             k
+              l
+               m
+                n
+                 o
+                  p
+                   q
+The end.            rstu                                                     vwx
+
diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.in b/test/escape_sequence_files/t0072-DECSTBM_NEL.in
new file mode 100644 (file)
index 0000000..5df9e71
--- /dev/null
@@ -0,0 +1,2 @@
+\e[3;7r1\eE2\eE3\eE4\eE5\eE6\eE7\eE8\eE9\e[8da\eEb\eEc\eEd\eEe\eEf\eEg\eEh\eEi\eEj\eEk\eEl\eEm\eEn\eEo\eEp\eEq\eEr\eEs\eEt\eEu\e[r\e[24d
+The end.
diff --git a/test/escape_sequence_files/t0072-DECSTBM_NEL.text b/test/escape_sequence_files/t0072-DECSTBM_NEL.text
new file mode 100644 (file)
index 0000000..1a0e4a1
--- /dev/null
@@ -0,0 +1,25 @@
+2
+5
+6
+7
+8
+9
+ a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+The end.
+
diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.in b/test/escape_sequence_files/t0073-DECSTBM_RI.in
new file mode 100644 (file)
index 0000000..fc7b7e4
--- /dev/null
@@ -0,0 +1,43 @@
+TOP 1\r
+TOP 2\r
+TOP 3\r
+TOP 4\r
+TOP 5\r
+TOP 6 - GONE\r
+
+
+
+
+
+
+
+
+
+
+
+
+BOTTOM 6 - GONE\r
+BOTTOM 5\r
+BOTTOM 4\r
+BOTTOM 3\r
+BOTTOM 2\r
+BOTTOM 1\e[6;19r
+
+
+
+
+And the third.\r
+
+
+
+
+
+
+
+
+
+
+This should be the last line.\r
+This one should be lost.\r
+This one's a goner, too.\r\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eM\eMThis is second line.\r\eMThis should be the first line.\e[r\e[24d
+The end.\r
diff --git a/test/escape_sequence_files/t0073-DECSTBM_RI.text b/test/escape_sequence_files/t0073-DECSTBM_RI.text
new file mode 100644 (file)
index 0000000..ce6dbc7
--- /dev/null
@@ -0,0 +1,25 @@
+TOP 2
+TOP 3
+TOP 4
+TOP 5
+This should be the first line.
+This is second line.
+And the third.
+
+
+
+
+
+
+
+
+
+
+This should be the last line.
+BOTTOM 5
+BOTTOM 4
+BOTTOM 3
+BOTTOM 2
+BOTTOM 1
+The end.
+
diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.in
new file mode 100644 (file)
index 0000000..1acbaf3
--- /dev/null
@@ -0,0 +1,24 @@
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x\e[5;9r\e[S\e[14;22r\e[3T\e[r\e[24d
diff --git a/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text b/test/escape_sequence_files/t0074-DECSTBM_SU_SD.text
new file mode 100644 (file)
index 0000000..948e5d4
--- /dev/null
@@ -0,0 +1,24 @@
+a
+ b
+  c
+   d
+     f
+      g
+       h
+        i
+
+         j
+          k
+           l
+            m
+
+
+
+             n
+              o
+               p
+                q
+                 r
+                  s
+                      w
+                       x
diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.in
new file mode 100644 (file)
index 0000000..b679113
--- /dev/null
@@ -0,0 +1,24 @@
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x\e[10;19r\e[25B1\e[24d\e[25A2\e[r\e[24d
diff --git a/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text b/test/escape_sequence_files/t0075-DECSTBM_CUU_CUD.text
new file mode 100644 (file)
index 0000000..486b91d
--- /dev/null
@@ -0,0 +1,25 @@
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j2
+k
+l
+m
+n
+o
+p
+q
+r
+1
+t
+u
+v
+w
+x
+
diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.in
new file mode 100644 (file)
index 0000000..58d20d2
--- /dev/null
@@ -0,0 +1,33 @@
+ 1  (IL on line 2, expect nothing)
+ 2  (DL on line 22, expect nothing)
+ 3  vvvv  IL on line 5, expected:  A_BC
+ 4  A
+ 5  B
+ 6  C
+ 7  D
+ 8  ^^^^
+ 9  vvvv  DL on line 11, expected:  ACD_
+10  A
+11  B
+12  C
+13  D
+14  ^^^^
+15  vvvv  IL on line 17, expected:  A_
+16  A
+17  B
+18  ^^^^
+19  vvvv  IL on line 21, expected:  A_
+20  A
+21  B
+22  ^^^^
+23  vvvv  IL on line 24, expected:  _A
+24  A\e[4;7r
+\e[L\e[22d\e[M\e[5d\e[L\e[10;13r\e[11d\e[M\e[16;17r\e[17d\e[L\e[20;21r\e[21d\e[M\e[r\e[24d
+25  B
+26  ^^^^
+27  vvvv  DL on line 28, expected:  B_
+28  A
+29  B
+30  ^^^^
+31
+32\e[16;17r\e[16d\e[L\e[20;21r\e[20d\e[M\e[r\e[24d
diff --git a/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text b/test/escape_sequence_files/t0076-DECSTBM_IL_DL.text
new file mode 100644 (file)
index 0000000..92c1033
--- /dev/null
@@ -0,0 +1,25 @@
+ 8  ^^^^
+ 9  vvvv  DL on line 11, expected:  ACD_
+10  A
+12  C
+13  D
+
+14  ^^^^
+15  vvvv  IL on line 17, expected:  A_
+16  A
+
+18  ^^^^
+19  vvvv  IL on line 21, expected:  A_
+20  A
+
+22  ^^^^
+
+23  vvvv  IL on line 24, expected:  _A
+25  B
+26  ^^^^
+28  A
+
+29  B
+30  ^^^^
+31
+32
diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.in b/test/escape_sequence_files/t0077-DECSTBM_quirks.in
new file mode 100644 (file)
index 0000000..b444362
--- /dev/null
@@ -0,0 +1,32 @@
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24\e[;4r\e[S\e[4;4HA\e[H
+\e[22r\e[S\e[24;5HB\e[H
+\e[6;7;8r\e[S\e[7;6HC\e[H
+\e[15;0r\e[S\e[24;7HD\e[H
+\e[10;10r\e[S\e[24;8HE\e[H
+\e[15;11r\e[S\e[24;9HF\e[H
+\e[23;28r\e[S\e[24;10HG\e[H
+\e[r\e[24d
+Done.
diff --git a/test/escape_sequence_files/t0077-DECSTBM_quirks.text b/test/escape_sequence_files/t0077-DECSTBM_quirks.text
new file mode 100644 (file)
index 0000000..ea142e3
--- /dev/null
@@ -0,0 +1,25 @@
+ 3
+ 4
+   A
+ 5
+ 7
+     C
+ 8
+ 9
+10
+11
+12
+13
+14
+18
+19
+20
+21
+23
+24
+    B
+      D
+        F
+         G
+Done.
+
diff --git a/test/escape_sequence_files/t0080-HT.in b/test/escape_sequence_files/t0080-HT.in
new file mode 100644 (file)
index 0000000..581e0ba
--- /dev/null
@@ -0,0 +1,14 @@
+a      b       c       d       e       f       g       h       i       j       k       l
+                               x
+1      2
+  \e[A3\e[B
+
+Tab before EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh        @
+tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @
+
+Tab at EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi       @
+with clipping:                                                 4567890abcdefghi        \eM\eD@
diff --git a/test/escape_sequence_files/t0080-HT.text b/test/escape_sequence_files/t0080-HT.text
new file mode 100644 (file)
index 0000000..0683c21
--- /dev/null
@@ -0,0 +1,25 @@
+a       b       c       d       e       f       g       h       i       j      k
+l
+                                x
+1 3     2
+
+
+Tab before EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @
+
+Tab at EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+@
+with clipping:                                                  4567890abcdefgh@
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0081-TBC.in b/test/escape_sequence_files/t0081-TBC.in
new file mode 100644 (file)
index 0000000..744b7a5
--- /dev/null
@@ -0,0 +1,19 @@
+default:
+>      1       2       3       4       5       6       7       8       9       0
+
+clear non-existant:    \e[gx                    \e[gx
+>      1       2       3       4       5       6       7       8       9       0
+
+clear 2 and 4:  \e[gx               \e[gx
+>      1       3       5       6       7       8       9       0
+
+clear 0:                                                       \e[gx
+>      1       3       5       6       7       8       9       0
+
+clear after 0:                                                 .\e[gx
+>      1       3       5       6       7       8       9       0
+
+clear all:\e[3g
+>      0done
+
+TBC at end with clipping:             ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde\e[g\eM\eD!
diff --git a/test/escape_sequence_files/t0081-TBC.text b/test/escape_sequence_files/t0081-TBC.text
new file mode 100644 (file)
index 0000000..575e3fd
--- /dev/null
@@ -0,0 +1,25 @@
+default:
+>       1       2       3       4       5       6       7       8       9      0
+
+clear non-existant:    x                    x
+>       1       2       3       4       5       6       7       8       9      0
+
+clear 2 and 4:  x               x
+>       1               3               5       6       7       8       9      0
+
+clear 0:                                                                       x
+>       1               3               5       6       7       8       9      0
+
+clear after 0:                                                                 .
+x
+>       1               3               5       6       7       8       9      0
+
+clear all:
+>                                                                              0
+done
+
+TBC at end with clipping:             ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd!
+
+
+
+
diff --git a/test/escape_sequence_files/t0082-HTS.in b/test/escape_sequence_files/t0082-HTS.in
new file mode 100644 (file)
index 0000000..2bd62d4
--- /dev/null
@@ -0,0 +1,8 @@
+       1       2       3       4
+abcde\eHFghijklmnopqrstuv\eHWxyz
+       H       1       2       W       3       4
+
+HTS at end: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde\eHfgh
+       H       1       2       W       3       4       5       6       7       8       9       a       b
+
+HTS at end with clipping:             ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde\eH\eM\eD!
diff --git a/test/escape_sequence_files/t0082-HTS.text b/test/escape_sequence_files/t0082-HTS.text
new file mode 100644 (file)
index 0000000..ecf66a5
--- /dev/null
@@ -0,0 +1,25 @@
+        1       2       3       4
+abcdeFghijklmnopqrstuvWxyz
+     H  1       2     W 3       4
+
+HTS at end: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcde
+fgh
+     H  1       2     W 3       4       5       6       7       8       9      a
+b
+
+HTS at end with clipping:             ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcd!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0083-CHT.in b/test/escape_sequence_files/t0083-CHT.in
new file mode 100644 (file)
index 0000000..838325d
--- /dev/null
@@ -0,0 +1,18 @@
+a\e[Ib\e[Ic\e[Id\e[Ie\e[If\e[Ig\e[Ih\e[Ii\e[Ij\e[Ik\e[Il
+\e[I\e[I\e[I\e[Ix
+1\e[I2
+  \e[A3\e[B
+
+CHT before EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh\e[I@
+tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg\e[I@
+
+CHT at EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi\e[I@
+with clipping:                                                 4567890abcdefghi\e[I\eM\eD@
+
+a\e[4Ie\e[2Ig
+\e[4Ie  \e[2Ih
+\e[100Ix
diff --git a/test/escape_sequence_files/t0083-CHT.text b/test/escape_sequence_files/t0083-CHT.text
new file mode 100644 (file)
index 0000000..071ed63
--- /dev/null
@@ -0,0 +1,25 @@
+a       b       c       d       e       f       g       h       i       j      k
+l
+                                x
+1 3     2
+
+
+CHT before EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefgh@
+tab (2):abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefg @
+
+CHT at EOL:
+no tab: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+@
+tab:    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890abcdefghi
+@
+with clipping:                                                  4567890abcdefgh@
+
+a                               e               g
+                                e                       h
+                                                                               x
+
+
+
+
diff --git a/test/escape_sequence_files/t0084-CBT.in b/test/escape_sequence_files/t0084-CBT.in
new file mode 100644 (file)
index 0000000..a7dd5b1
--- /dev/null
@@ -0,0 +1,16 @@
+a      b       c       d       e       f       g       h       i       j       k
+                                                                    <\e[ZI\e[Zi\e[2Zh\e[3Zf\e[10Za
+\e[Za
+
+default tab stops:
+near end:                                                              abcdefg\e[Z!
+at end:                                                                        abcdefgh\e[Z!
+at end (2):                                                            abcdefgh\e[2Z!
+at end with clipping:                                                  abcdefgh\e[Z\eM\eD!
+at end with clipping (2):                                              abcdefgh\e[2Z\eM\eD!
+
+set tab stop at column 80:                                                     \eHv
+at end:                                                                        abcdefgh\e[Z!
+at end (2):                                                            abcdefgh\e[2Z!
+at end with clipping:                                                  abcdefgh\e[Z\eM\eD!
+at end with clipping (2):                                              abcdefgh\e[2Z\eM\eD!
diff --git a/test/escape_sequence_files/t0084-CBT.text b/test/escape_sequence_files/t0084-CBT.text
new file mode 100644 (file)
index 0000000..2fb8765
--- /dev/null
@@ -0,0 +1,25 @@
+a       b       c       d       e       f       g       h       i       j      k
+a                                       f               h       i   <
+a
+
+default tab stops:
+near end:                                                               !bcdefg
+at end:                                                                 abcdefgh
+!
+at end (2):                                                             abcdefgh
+!
+at end with clipping:                                                   !bcdefgh
+at end with clipping (2):                                       !       abcdefgh
+
+set tab stop at column 80:                                                     v
+at end:                                                                 abcdefgh
+!
+at end (2):                                                             abcdefgh
+!
+at end with clipping:                                                   !bcdefgh
+at end with clipping (2):                                       !       abcdefgh
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0084-CBT.text-xterm b/test/escape_sequence_files/t0084-CBT.text-xterm
new file mode 100644 (file)
index 0000000..7a2adc7
--- /dev/null
@@ -0,0 +1,20 @@
+a       b       c       d       e       f       g       h       i       j      k
+a                                       f               h       i   <
+a
+
+default tab stops:
+near end:                                                               !bcdefg
+at end:                                                                 abcdefgh
+!
+at end (2):                                                             abcdefgh
+!
+at end with clipping:                                                   !bcdefgh
+at end with clipping (2):                                       !       abcdefgh
+
+set tab stop at column 80:                                                     v
+at end:                                                                 abcdefgh
+!
+at end (2):                                                             abcdefgh
+!
+at end with clipping:                                                   !bcdefgh
+at end with clipping (2):                                       !       abcdefgh
diff --git a/test/escape_sequence_files/t0090-alt_screen.in b/test/escape_sequence_files/t0090-alt_screen.in
new file mode 100644 (file)
index 0000000..bf1eeaf
--- /dev/null
@@ -0,0 +1,55 @@
+a\e[?47h
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x
+y\e[?47lz
+A\e[?47h
+B
+C
+D
+E
+F
+G
+H
+I
+J
+K
+L
+M
+N
+O
+P
+Q
+R
+S
+T
+U
+V
+W
+X
+Y\e[?47lZ
+                                                                            --->\e[?47hhello\e[?47l<--
+
+                                                                            --->\e[?47h\e[?47l<---
+
+fin
diff --git a/test/escape_sequence_files/t0090-alt_screen.text b/test/escape_sequence_files/t0090-alt_screen.text
new file mode 100644 (file)
index 0000000..7ac0135
--- /dev/null
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ z
+AZ
+     <--                                                                    --->
+
+                                                                            --->
+<---
+
+fin
+
diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.in b/test/escape_sequence_files/t0091-alt_screen_ED3.in
new file mode 100644 (file)
index 0000000..40957e8
--- /dev/null
@@ -0,0 +1,46 @@
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+k
+l
+m
+n
+o
+p
+q
+r
+s
+t
+u
+v
+w
+x
+y
+z
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+\e[?47h
+one
+two
+three
+four
+five
+six
+\e[3J
+\e[?47l
+11
diff --git a/test/escape_sequence_files/t0091-alt_screen_ED3.text b/test/escape_sequence_files/t0091-alt_screen_ED3.text
new file mode 100644 (file)
index 0000000..4a326a4
--- /dev/null
@@ -0,0 +1,25 @@
+             n
+              o
+               p
+                q
+                 r
+                  s
+                   t
+                    u
+                     v
+                      w
+                       x
+                        y
+                         z
+                          1
+                           2
+                            3
+                             4
+                              5
+                               6
+                                7
+                                 8
+                                  9
+                                   10
+
+                                                           11
diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.in b/test/escape_sequence_files/t0092-alt_screen_DECSC.in
new file mode 100644 (file)
index 0000000..3022a93
--- /dev/null
@@ -0,0 +1,15 @@
+a
+    b\e7
+         c\e[?47h
+
+ >\e7
+
+    \e[5Sxxxxxxx\e8\e[?47l!\e8<
+
+
+
+
+
+
+
+The end.
diff --git a/test/escape_sequence_files/t0092-alt_screen_DECSC.text b/test/escape_sequence_files/t0092-alt_screen_DECSC.text
new file mode 100644 (file)
index 0000000..bab1503
--- /dev/null
@@ -0,0 +1,25 @@
+a
+    b<
+         c
+
+  !
+
+
+
+
+The end.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0100-IRM.in b/test/escape_sequence_files/t0100-IRM.in
new file mode 100644 (file)
index 0000000..5046f18
--- /dev/null
@@ -0,0 +1,13 @@
+-------- insert single '!' --------------------------------------------abcdefghi
+jklmnop\e[1;75H\e[4h!\e[4l
+
+
+-------- insert 0-9, with wraparound ----------------------------------abcdefghi
+jklmnop\e[4;75H\e[4h0123456789\e[4l
+
+-------- repeat 3 '!' -------------------------------------------------abcdefghi
+jklmnop\e[7;75H\e[4h!\e[2b\e[4l
+
+
+-------- repeat 10 '!', with wraparound -------------------------------abcdefghi
+jklmnop\e[10;75H\e[4h!\e[9b\e[4l
diff --git a/test/escape_sequence_files/t0100-IRM.text b/test/escape_sequence_files/t0100-IRM.text
new file mode 100644 (file)
index 0000000..f4f3eea
--- /dev/null
@@ -0,0 +1,25 @@
+-------- insert single '!' --------------------------------------------abc!defgh
+jklmnop
+
+-------- insert 0-9, with wraparound ----------------------------------abc012345
+6789jklmnop
+
+-------- repeat 3 '!' -------------------------------------------------abc!!!def
+jklmnop
+
+-------- repeat 10 '!', with wraparound -------------------------------abc!!!!!!
+!!!!jklmnop
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0101-NLM.in b/test/escape_sequence_files/t0101-NLM.in
new file mode 100644 (file)
index 0000000..554a0f3
--- /dev/null
@@ -0,0 +1,10 @@
+a
+b
+c
+d\e[20h
+e
+f\vg\fh
+i\rj\rk\e[20l
+l
+m
+n\vo\fp\r
diff --git a/test/escape_sequence_files/t0101-NLM.text b/test/escape_sequence_files/t0101-NLM.text
new file mode 100644 (file)
index 0000000..47f883f
--- /dev/null
@@ -0,0 +1,25 @@
+a
+b
+c
+d
+e
+f
+g
+h
+k
+l
+m
+n
+ o
+  p
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0102-DECAWM.in b/test/escape_sequence_files/t0102-DECAWM.in
new file mode 100644 (file)
index 0000000..c615659
--- /dev/null
@@ -0,0 +1,4 @@
+-------- default: wraparound  ----------------------------------------------abcdefgh\e[?7h
+--------     set: wraparound  ----------------------------------------------abcdefgh\e[?7l
+--------   unset: no wraparound  -------------------------------------------abcdefgh
+   this should be immediately below "no wraparound"\e[?7h
diff --git a/test/escape_sequence_files/t0102-DECAWM.text b/test/escape_sequence_files/t0102-DECAWM.text
new file mode 100644 (file)
index 0000000..c1f22de
--- /dev/null
@@ -0,0 +1,25 @@
+-------- default: wraparound  ----------------------------------------------abcd
+efgh
+--------     set: wraparound  ----------------------------------------------abcd
+efgh
+--------   unset: no wraparound  -------------------------------------------abcd
+   this should be immediately below "no wraparound"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0103-reverse_wrap.in b/test/escape_sequence_files/t0103-reverse_wrap.in
new file mode 100644 (file)
index 0000000..092462e
--- /dev/null
@@ -0,0 +1,6 @@
+\e[?45ha
+b\b\bA
+
+c\b\b\b-B
+
+d\b\bC!\e[H\b\b\b\b\b\b\bthe endreally!\e[?45l
diff --git a/test/escape_sequence_files/t0103-reverse_wrap.text b/test/escape_sequence_files/t0103-reverse_wrap.text
new file mode 100644 (file)
index 0000000..da830d5
--- /dev/null
@@ -0,0 +1,25 @@
+c                                                                              C
+!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+                                                                         the end
+really!
+
diff --git a/test/escape_sequence_files/t0200-SGR.html b/test/escape_sequence_files/t0200-SGR.html
new file mode 100644 (file)
index 0000000..fa270a0
--- /dev/null
@@ -0,0 +1,35 @@
+<pre>
+Implemented non-color attributes:
+
+ 1: This is <span style="font-weight: bold">bold</span>.
+
+ 3: This is <span style="font-style: italic">italic</span>.
+
+ 4: This is <span style="text-decoration: underline">underlined</span>.
+
+ 5: This is <span style="text-decoration: blink">slowly blinking</span>.
+
+ 6: This is <span style="text-decoration: blink">rapidly blinking</span>.
+
+ 7: This is <span style="background-color: black; color: white">inverse</span>.
+
+ 8: This is <span style="visibility: hidden">hidden</span>.
+
+ 9: This is <span style="text-decoration: line-through">struck out</span>.
+
+21: This is <span style="text-decoration: underline; border-bottom: 1px solid">double underlined</span>.
+
+53: This is <span style="text-decoration: overline">overlined</span>.
+
+
+
+Unimplemented non-color attributes:
+
+ 2: weight:feint
+
+20: style:fraktur
+
+51: frame:box
+
+52: frame:circle
+</pre>
diff --git a/test/escape_sequence_files/t0200-SGR.in_ b/test/escape_sequence_files/t0200-SGR.in_
new file mode 100644 (file)
index 0000000..3b37c93
--- /dev/null
@@ -0,0 +1,33 @@
+Implemented non-color attributes:
+
+ 1: This is \e[1mbold\e[m.
+
+ 3: This is \e[3mitalic\e[m.
+
+ 4: This is \e[4munderlined\e[m.
+
+ 5: This is \e[5mslowly blinking\e[m.
+
+ 6: This is \e[6mrapidly blinking\e[m.
+
+ 7: This is \e[7minverse\e[m.
+
+ 8: This is \e[8mhidden\e[m.
+
+ 9: This is \e[9mstruck out\e[m.
+
+21: This is \e[21mdouble underlined\e[m.
+
+53: This is \e[53moverlined\e[m.
+
+
+
+Unimplemented non-color attributes:
+
+ 2: weight:feint
+
+20: style:fraktur
+
+51: frame:box
+
+52: frame:circle
diff --git a/test/escape_sequence_files/t0220-SGR_inverse.html b/test/escape_sequence_files/t0220-SGR_inverse.html
new file mode 100644 (file)
index 0000000..7218bf4
--- /dev/null
@@ -0,0 +1,6 @@
+<pre>
+This is <span style="background-color: black; color: white">inverse text</span> with default fg and bg.
+<span style="color: #cd0000">This is </span><span style="color: white; background-color: #cd0000">inverse text</span><span style="color: #cd0000"> with red fg and default bg.</span>
+<span style="background-color: #cd0000">This is </span><span style="background-color: black; color: #cd0000">inverse text</span><span style="background-color: #cd0000"> with default fg and red bg.</span>
+<span style="background-color: #cd0000; color: #00cd00">This is </span><span style="background-color: #00cd00; color: #cd0000">inverse text</span><span style="background-color: #cd0000; color: #00cd00"> with green fg and red bg.</span>
+</pre>
diff --git a/test/escape_sequence_files/t0220-SGR_inverse.in_ b/test/escape_sequence_files/t0220-SGR_inverse.in_
new file mode 100644 (file)
index 0000000..e7e63f9
--- /dev/null
@@ -0,0 +1,4 @@
+This is \e[7minverse text\e[27m with default fg and bg.
+\e[31mThis is \e[7minverse text\e[27m with red fg and default bg.\e[m
+\e[41mThis is \e[7minverse text\e[27m with default fg and red bg.\e[m
+\e[32;41mThis is \e[7minverse text\e[27m with green fg and red bg.\e[m
diff --git a/test/escape_sequence_files/t0500-bash_long_line.in b/test/escape_sequence_files/t0500-bash_long_line.in
new file mode 100644 (file)
index 0000000..b1e5491
--- /dev/null
@@ -0,0 +1,7 @@
+Script started on Fri 27 Mar 2009 08:53:29 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory\r
+\e]0;mark@mark-desktop:~/vt100-to-html\amark@mark-desktop:~/vt100-to-html$ bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST \rUVWXYZ1234567890abcdefghijklmnopqrstuv\e[A\b\b\bcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV\e[1PWXYZ1234567890abcdefghijklmnopqrstuv\e[A\b\b\r
+\r\r
+\e]0;mark@mark-desktop:~/vt100-to-html\amark@mark-desktop:~/vt100-to-html$ exit\r
+
+Script done on Fri 27 Mar 2009 08:53:33 PM EDT
diff --git a/test/escape_sequence_files/t0500-bash_long_line.text b/test/escape_sequence_files/t0500-bash_long_line.text
new file mode 100644 (file)
index 0000000..5c785d0
--- /dev/null
@@ -0,0 +1,25 @@
+Script started on Fri 27 Mar 2009 08:53:29 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory
+mark@mark-desktop:~/vt100-to-html$ cdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU
+VWXYZ1234567890abcdefghijklmnopqrstuv
+mark@mark-desktop:~/vt100-to-html$ exit
+
+Script done on Fri 27 Mar 2009 08:53:33 PM EDT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0501-bash_ls.in b/test/escape_sequence_files/t0501-bash_ls.in
new file mode 100644 (file)
index 0000000..9053d8b
--- /dev/null
@@ -0,0 +1,12 @@
+Script started on Sun 17 May 2009 06:20:41 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory
+\e]0;mark@mark-desktop:~/vt100-to-html/scripts\amark@mark-desktop:~/vt100-to-html/scripts$ ls
+bash.script
+\e]0;mark@mark-desktop:~/vt100-to-html/scripts\amark@mark-desktop:~/vt100-to-html/scripts$ ls /
+bin    dev     initrd.img      lib64      opt   selinux  usr
+boot   etc     initrd.img.old  lost+found  proc  srv     var
+boot2  home    lib            media       root  sys      vmlinuz
+cdrom  initrd  lib32          mnt         sbin  tmp      vmlinuz.old
+\e]0;mark@mark-desktop:~/vt100-to-html/scripts\amark@mark-desktop:~/vt100-to-html/scripts$ exit
+
+Script done on Sun 17 May 2009 06:20:52 PM EDT
diff --git a/test/escape_sequence_files/t0501-bash_ls.text b/test/escape_sequence_files/t0501-bash_ls.text
new file mode 100644 (file)
index 0000000..8114fc9
--- /dev/null
@@ -0,0 +1,25 @@
+Script started on Sun 17 May 2009 06:20:41 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory
+mark@mark-desktop:~/vt100-to-html/scripts$ ls
+bash.script
+mark@mark-desktop:~/vt100-to-html/scripts$ ls /
+bin    dev     initrd.img      lib64       opt   selinux  usr
+boot   etc     initrd.img.old  lost+found  proc  srv      var
+boot2  home    lib             media       root  sys      vmlinuz
+cdrom  initrd  lib32           mnt         sbin  tmp      vmlinuz.old
+mark@mark-desktop:~/vt100-to-html/scripts$ exit
+
+Script done on Sun 17 May 2009 06:20:52 PM EDT
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0502-bash_ls_color.in b/test/escape_sequence_files/t0502-bash_ls_color.in
new file mode 100644 (file)
index 0000000..1f4eda8
--- /dev/null
@@ -0,0 +1,10 @@
+Script started on Sun 17 May 2009 06:21:05 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory
+\e]0;mark@mark-desktop:~/vt100-to-html/scripts\amark@mark-desktop:~/vt100-to-html/scripts$ ls --color=auto /
+\e[00m\e[01;34mbin\e[00m    \e[01;34mdev\e[00m     \e[01;36minitrd.img\e[00m      \e[01;36mlib64\e[00m       \e[01;34mopt\e[00m   \e[01;34mselinux\e[00m  \e[01;34musr\e[00m
+\e[01;34mboot\e[00m   \e[01;34metc\e[00m     \e[01;36minitrd.img.old\e[00m  \e[01;34mlost+found\e[00m  \e[01;34mproc\e[00m  \e[01;34msrv\e[00m      \e[01;34mvar\e[00m
+\e[01;34mboot2\e[00m  \e[01;34mhome\e[00m    \e[01;34mlib\e[00m             \e[01;34mmedia\e[00m       \e[01;34mroot\e[00m  \e[01;34msys\e[00m      \e[01;36mvmlinuz\e[00m
+\e[01;36mcdrom\e[00m  \e[01;34minitrd\e[00m  \e[01;34mlib32\e[00m           \e[01;34mmnt\e[00m         \e[01;34msbin\e[00m  \e[30;42mtmp\e[00m      \e[01;36mvmlinuz.old\e[00m
+\e[m\e]0;mark@mark-desktop:~/vt100-to-html/scripts\amark@mark-desktop:~/vt100-to-html/scripts$ exit
+
+Script done on Sun 17 May 2009 06:21:11 PM EDT
diff --git a/test/escape_sequence_files/t0502-bash_ls_color.text b/test/escape_sequence_files/t0502-bash_ls_color.text
new file mode 100644 (file)
index 0000000..1892eea
--- /dev/null
@@ -0,0 +1,25 @@
+Script started on Sun 17 May 2009 06:21:05 PM EDT
+dircolors: /etc/DIR_COLORS: No such file or directory
+mark@mark-desktop:~/vt100-to-html/scripts$ ls --color=auto /
+bin    dev     initrd.img      lib64       opt   selinux  usr
+boot   etc     initrd.img.old  lost+found  proc  srv      var
+boot2  home    lib             media       root  sys      vmlinuz
+cdrom  initrd  lib32           mnt         sbin  tmp      vmlinuz.old
+mark@mark-desktop:~/vt100-to-html/scripts$ exit
+
+Script done on Sun 17 May 2009 06:21:11 PM EDT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.in b/test/escape_sequence_files/t0503-zsh_ls_color.in
new file mode 100644 (file)
index 0000000..aca2d10
--- /dev/null
@@ -0,0 +1,9 @@
+Script started on Sun 17 May 2009 06:21:21 PM EDT
+\e]2;mark-desktop - ~/vt100-to-html/scripts\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[54C\e[1;34m~/vt100-to-html/scripts\e[0m\e[77Dl\bls /\r\r
+\e]2;mark-desktop - ls /\a\e[00m\e[01;34mbin\e[00m    \e[01;34mdev\e[00m     \e[01;36minitrd.img\e[00m      \e[01;36mlib64\e[00m       \e[01;34mopt\e[00m   \e[01;34mselinux\e[00m  \e[01;34musr\e[00m\r
+\e[01;34mboot\e[00m   \e[01;34metc\e[00m     \e[01;36minitrd.img.old\e[00m  \e[01;34mlost+found\e[00m  \e[01;34mproc\e[00m  \e[01;34msrv\e[00m      \e[01;34mvar\e[00m\r
+\e[01;34mboot2\e[00m  \e[01;34mhome\e[00m    \e[01;34mlib\e[00m             \e[01;34mmedia\e[00m       \e[01;34mroot\e[00m  \e[01;34msys\e[00m      \e[01;36mvmlinuz\e[00m\r
+\e[01;36mcdrom\e[00m  \e[01;34minitrd\e[00m  \e[01;34mlib32\e[00m           \e[01;34mmnt\e[00m         \e[01;34msbin\e[00m  \e[30;42mtmp\e[00m      \e[01;36mvmlinuz.old\e[00m\r
+\e[m\e]2;mark-desktop - ~/vt100-to-html/scripts\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[54C\e[1;34m~/vt100-to-html/scripts\e[0m\e[77D\r\r
+
+Script done on Sun 17 May 2009 06:21:27 PM EDT
diff --git a/test/escape_sequence_files/t0503-zsh_ls_color.text b/test/escape_sequence_files/t0503-zsh_ls_color.text
new file mode 100644 (file)
index 0000000..19feb18
--- /dev/null
@@ -0,0 +1,25 @@
+Script started on Sun 17 May 2009 06:21:21 PM EDT
+$ ls /                                                  ~/vt100-to-html/scripts
+bin    dev     initrd.img      lib64       opt   selinux  usr
+boot   etc     initrd.img.old  lost+found  proc  srv      var
+boot2  home    lib             media       root  sys      vmlinuz
+cdrom  initrd  lib32           mnt         sbin  tmp      vmlinuz.old
+$                                                       ~/vt100-to-html/scripts
+
+Script done on Sun 17 May 2009 06:21:27 PM EDT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/escape_sequence_files/t0504-vim.in b/test/escape_sequence_files/t0504-vim.in
new file mode 100644 (file)
index 0000000..cb68232
--- /dev/null
@@ -0,0 +1,56 @@
+Script started on Sun 15 Aug 2010 11:53:27 PM EDT
+\e]0;mark-desktop - ~/vt100-to-html/test\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[57C\e[1;34m~/vt100-to-html/test\e[0m\e[77Dl\bls\r\r
+\e]0;mark-desktop - ls\a\e[0m\e[01;34mexpected_text\e[0m             t0016-SU.text          t0050-ICH.text\r
+\e[01;34minput\e[0m                     t0017-SD.in            t0051-IL.in\r
+\e[01;32mrun_all.py\e[0m                t0017-SD.text          t0051-IL.text\r
+t0001-all_printable.in    t0020-CUF.in           t0052-DL.in\r
+t0001-all_printable.text  t0020-CUF.text         t0052-DL.text\r
+t0002-history.in          t0021-CUB.in           t0053-DCH.in\r
+t0002-history.text        t0021-CUB.text         t0053-DCH.text\r
+t0003-line_wrap.in        t0022-CUU.in           t0054-ECH.in\r
+t0003-line_wrap.text      t0022-CUU.text         t0054-ECH.text\r
+t0004-LF.in               t0023-CUU_scroll.in    t0055-EL.in\r
+t0004-LF.text             t0023-CUU_scroll.text  t0055-EL.text\r
+t0005-CR.in               t0024-CUD.in           t0056-ED.in\r
+t0005-CR.text             t0024-CUD.text         t0056-ED.text\r
+t0006-IND.in              t0025-CUP.in           t0057-ED3.in\r
+t0006-IND.text            t0025-CUP.text         t0057-ED3.note\r
+t0007-space_at_end.in     t0026-CNL.in           t0057-ED3.text\r
+t0007-space_at_end.text   t0026-CNL.text         t0060-DECSC.in\r
+t0008-BS.in               t0027-CPL.in           t0060-DECSC.text\r
+t0008-BS.text             t0027-CPL.text         t0061-CSI_s.in\r
+t0009-NEL.in              t0030-HPR.in           t0061-CSI_s.text\r
+t0009-NEL.text            t0030-HPR.text         t008x-alt_screen_ED.in\r
+t0010-RI.in               t0031-HPB.in           t008x-IRM.in\r
+t0010-RI.text             t0031-HPB.text         t008x-NLM.in\r
+t0011-RI_scroll.in        t0032-VPB.in           t008x-save_cursor_mode.in\r
+t0011-RI_scroll.text      t0032-VPB.text         t0500-bash_long_line.in\r
+t0012-VT.in               t0033-VPB_scroll.in    t0500-bash_long_line.text\r
+t0012-VT.text             t0033-VPB_scroll.text  t0501-bash_ls.in\r
+t0013-FF.in               t0034-VPR.in           t0501-bash_ls.text\r
+t0013-FF.text             t0034-VPR.text         t0502-bash_ls_color.in\r
+t0014-CAN.in              t0035-HVP.in           t0502-bash_ls_color.text\r
+t0014-CAN.text            t0035-HVP.text         t0503-zsh_ls_color.in\r
+t0015-SUB.in              t0040-REP.in           t0503-zsh_ls_color.text\r
+t0015-SUB.text            t0040-REP.text         typescript\r
+t0016-SU.in               t0050-ICH.in\r
+\e[m\e]0;mark-desktop - ~/vt100-to-html/test\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[57C\e[1;34m~/vt100-to-html/test\e[0m\e[77Dv\bvim\r\r
+\e]0;mark-desktop - vim\a\e[?1000h\e[?1049h\e[?1h\e=\e[1;24r\e[?12;25h\e[?12l\e[?25h\e[27m\e[m\e[H\e[2J\e[>c\e[?25l\e[2;1H\e[38;5;12m~                                                                               \e[3;1H~                                                                               \e[4;1H~                                                                               \e[5;1H~                                                                               \e[6;1H~                                                                               \e[7;1H~                                                                               \e[8;1H~                                                                               \e[9;1H~                                                                               \e[10;1H~                                                                               \e[11;1H~                                                                               \e[12;1H~                                                                               \e[13;1H~                                                                               \e[14;1H~                                                                               \e[15;1H~                                                                               \e[16;1H~                                                                               \e[17;1H~                                                                               \e[18;1H~                                                                               \e[19;1H~                                                                               \e[20;1H~                                                                               \e[21;1H~                                                                               \e[22;1H~                                                                               \e[m\e[23;1H\e[1m\e[7m\e[38;5;68m[No Name]                                                     0,0-1          All\e[m\e[6;32HVIM - Vi IMproved\e[8;33Hversion 7.2.267\e[9;29Hby Bram Moolenaar et al.\e[10;19HVim is open source and freely distributable\e[12;26HBecome a registered Vim user!\e[13;18Htype  :help register\e[38;5;81m<Enter>\e[m   for information \e[15;18Htype  :q\e[38;5;81m<Enter>\e[m               to exit         \e[16;18Htype  :help\e[38;5;81m<Enter>\e[m  or  \e[38;5;81m<F1>\e[m  for on-line help\e[17;18Htype  :help version7\e[38;5;81m<Enter>\e[m   for version info\e]2;[No Name] - VIM\a\e]1;[No Name]\a\e[1;1H\e[?12l\e[?25h\e[?1000l\e[?1002h\eP+q436f\e\\eP+q6b75\e\\eP+q6b64\e\\eP+q6b72\e\\eP+q6b6c\e\\eP+q2332\e\\eP+q2334\e\\eP+q2569\e\\eP+q2a37\e\\eP+q6b31\e\\e[?25l\e[24;1H\e[1m\e[38;5;3m-- INSERT --\e[m\e[23;65H\e[1m\e[7m\e[38;5;68m1   \e[1;1H\e[?12l\e[?25h\e[?25l\e[mT\e[6;32H\e[38;5;12m                 \e[8;33H               \e[9;29H                        \e[10;19H                                           \e[12;26H                             \e[13;18H                                              \e[15;18H                                              \e[16;18H                                              \e[17;18H                                              \e[m\e[23;11H\e[1m\e[7m\e[38;5;68m[+]\e[49C1,2 \e]2;[No Name] + - VIM\a\e]1;[No Name]\a\e[1;2H\e[?12l\e[?25h\e[?25l\e[m\bTh\e[23;65H\e[1m\e[7m\e[38;5;68m3 \e[1;3H\e[?12l\e[?25h\e[?25l\e[m\bhi\e[23;65H\e[1m\e[7m\e[38;5;68m4 \e[1;4H\e[?12l\e[?25h\e[?25l\e[m\bis\e[23;65H\e[1m\e[7m\e[38;5;68m5 \e[1;5H\e[?12l\e[?25h\e[?25l\e[23;65H6 \e[1;6H\e[?12l\e[?25h\e[?25l\e[m\b i\e[23;65H\e[1m\e[7m\e[38;5;68m7 \e[1;7H\e[?12l\e[?25h\e[?25l\e[m\bis\e[23;65H\e[1m\e[7m\e[38;5;68m8 \e[1;8H\e[?12l\e[?25h\e[?25l\e[23;65H9 \e[1;9H\e[?12l\e[?25h\e[?25l\e[m\b a\e[23;65H\e[1m\e[7m\e[38;5;68m10\e[1;10H\e[?12l\e[?25h\e[?25l\e[23;66H1 \e[1;11H\e[?12l\e[?25h\e[?25l\e[m\b t\e[23;66H\e[1m\e[7m\e[38;5;68m2 \e[1;12H\e[?12l\e[?25h\e[?25l\e[m\bte\e[23;66H\e[1m\e[7m\e[38;5;68m3 \e[1;13H\e[?12l\e[?25h\e[?25l\e[m\bes\e[23;66H\e[1m\e[7m\e[38;5;68m4 \e[1;14H\e[?12l\e[?25h\e[?25l\e[m\bst\e[23;66H\e[1m\e[7m\e[38;5;68m5 \e[1;15H\e[?12l\e[?25h\e[?25l\e[m\bt.\e[23;66H\e[1m\e[7m\e[38;5;68m6 \e[1;16H\e[?12l\e[?25h\e[?25l\e[m\e[2;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m2,1  \e[2;1H\e[?12l\e[?25h\e[?25l\e[m\e[3;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m3,\e[3;1H\e[?12l\e[?25h\e[?25l\e[mH\e[23;65H\e[1m\e[7m\e[38;5;68m2 \e[3;2H\e[?12l\e[?25h\e[?25l\e[m\bHo\e[23;65H\e[1m\e[7m\e[38;5;68m3 \e[3;3H\e[?12l\e[?25h\e[?25l\e[m\boe\e[23;65H\e[1m\e[7m\e[38;5;68m4 \e[3;4H\e[?12l\e[?25h\e[?25l\e[23;65H5 \e[3;5H\e[?12l\e[?25h\e[?25l\e[m\b f\e[23;65H\e[1m\e[7m\e[38;5;68m6 \e[3;6H\e[?12l\e[?25h\e[?25l\e[m\bfu\e[23;65H\e[1m\e[7m\e[38;5;68m7 \e[3;7H\e[?12l\e[?25h\e[?25l\e[m\e[3;6H\e[K\e[23;65H\e[1m\e[7m\e[38;5;68m6 \e[3;6H\e[?12l\e[?25h\e[?25l\e[m\e[3;5H\e[K\e[23;65H\e[1m\e[7m\e[38;5;68m5 \e[3;5H\e[?12l\e[?25h\e[?25l\e[23;65H4 \e[3;4H\e[?12l\e[?25h\e[?25l\e[m\e[3;3H\e[K\e[23;65H\e[1m\e[7m\e[38;5;68m3 \e[3;3H\e[?12l\e[?25h\e[?25l\e[m\bop\e[23;65H\e[1m\e[7m\e[38;5;68m4 \e[3;4H\e[?12l\e[?25h\e[?25l\e[m\bpe\e[23;65H\e[1m\e[7m\e[38;5;68m5 \e[3;5H\e[?12l\e[?25h\e[?25l\e[m\bef\e[23;65H\e[1m\e[7m\e[38;5;68m6 \e[3;6H\e[?12l\e[?25h\e[?25l\e[m\bfu\e[23;65H\e[1m\e[7m\e[38;5;68m7 \e[3;7H\e[?12l\e[?25h\e[?25l\e[m\bul\e[23;65H\e[1m\e[7m\e[38;5;68m8 \e[3;8H\e[?12l\e[?25h\e[?25l\e[m\bll\e[23;65H\e[1m\e[7m\e[38;5;68m9 \e[3;9H\e[?12l\e[?25h\e[?25l\e[m\bly\e[23;65H\e[1m\e[7m\e[38;5;68m10\e[3;10H\e[?12l\e[?25h\e[?25l\e[23;66H1 \e[3;11H\e[?12l\e[?25h\e[?25l\e[m\b i\e[23;66H\e[1m\e[7m\e[38;5;68m2 \e[3;12H\e[?12l\e[?25h\e[?25l\e[m\bit\e[23;66H\e[1m\e[7m\e[38;5;68m3 \e[3;13H\e[?12l\e[?25h\e[?25l\e[23;66H4 \e[3;14H\e[?12l\e[?25h\e[?25l\e[m\b w\e[23;66H\e[1m\e[7m\e[38;5;68m5 \e[3;15H\e[?12l\e[?25h\e[?25l\e[m\bwi\e[23;66H\e[1m\e[7m\e[38;5;68m6 \e[3;16H\e[?12l\e[?25h\e[?25l\e[m\bil\e[23;66H\e[1m\e[7m\e[38;5;68m7 \e[3;17H\e[?12l\e[?25h\e[?25l\e[m\bll\e[23;66H\e[1m\e[7m\e[38;5;68m8 \e[3;18H\e[?12l\e[?25h\e[?25l\e[23;66H9 \e[3;19H\e[?12l\e[?25h\e[?25l\e[m\b w\e[23;65H\e[1m\e[7m\e[38;5;68m20 \e[3;20H\e[?12l\e[?25h\e[?25l\e[m\bwo\e[23;66H\e[1m\e[7m\e[38;5;68m1 \e[3;21H\e[?12l\e[?25h\e[?25l\e[m\bor\e[23;66H\e[1m\e[7m\e[38;5;68m2 \e[3;22H\e[?12l\e[?25h\e[?25l\e[m\brk\e[23;66H\e[1m\e[7m\e[38;5;68m3 \e[3;23H\e[?12l\e[?25h\e[?25l\e[m\bk.\e[23;66H\e[1m\e[7m\e[38;5;68m4 \e[3;24H\e[?12l\e[?25h\e[?25l\e[m\e[4;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m4,1  \e[4;1H\e[?12l\e[?25h\e[?25l\e[m\e[5;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m5,\e[5;1H\e[?12l\e[?25h\e[?25l\e[m\e[6;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m6,\e[6;1H\e[?12l\e[?25h\e[?25l\e[m\e[7;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m7,\e[7;1H\e[?12l\e[?25h\e[?25l\e[m\e[8;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m8,\e[8;1H\e[?12l\e[?25h\e[?25l\e[m\e[9;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m9,\e[9;1H\e[?12l\e[?25h\e[?25l\e[m\e[10;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m10,1\e[10;1H\e[?12l\e[?25h\e[?25l\e[m\e[11;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m1,\e[11;1H\e[?12l\e[?25h\e[?25l\e[m\e[12;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m2,\e[12;1H\e[?12l\e[?25h\e[?25l\e[m\e[13;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m3,\e[13;1H\e[?12l\e[?25h\e[?25l\e[m\e[14;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m4,\e[14;1H\e[?12l\e[?25h\e[?25l\e[m\e[15;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m5,\e[15;1H\e[?12l\e[?25h\e[?25l\e[m\e[16;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m6,\e[16;1H\e[?12l\e[?25h\e[?25l\e[m\e[17;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m7,\e[17;1H\e[?12l\e[?25h\e[?25l\e[m\e[18;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m8,\e[18;1H\e[?12l\e[?25h\e[?25l\e[m\e[19;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m9,\e[19;1H\e[?12l\e[?25h\e[?25l\e[m\e[20;1H\e[K\e[23;63H\e[1m\e[7m\e[38;5;68m20,\e[20;1H\e[?12l\e[?25h\e[?25l\e[m\e[21;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m1,\e[21;1H\e[?12l\e[?25h\e[?25l\e[m\e[22;1H\e[K\e[23;64H\e[1m\e[7m\e[38;5;68m2,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m3,\e[12CBot\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m4,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m5,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m6,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m7,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m8,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m9,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;63H\e[1m\e[7m\e[38;5;68m30,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m1,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m2,\e[22;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[22;1H\r
+\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m3,\e[22;1H\e[?12l\e[?25h\e[?25l\e[mI\e[23;66H\e[1m\e[7m\e[38;5;68m2 \e[22;2H\e[?12l\e[?25h\e[?25l\e[23;66H3 \e[22;3H\e[?12l\e[?25h\e[?25l\e[m\b b\e[23;66H\e[1m\e[7m\e[38;5;68m4 \e[22;4H\e[?12l\e[?25h\e[?25l\e[m\bbe\e[23;66H\e[1m\e[7m\e[38;5;68m5 \e[22;5H\e[?12l\e[?25h\e[?25l\e[m\bet\e[23;66H\e[1m\e[7m\e[38;5;68m6 \e[22;6H\e[?12l\e[?25h\e[?25l\e[23;66H7 \e[22;7H\e[?12l\e[?25h\e[?25l\e[m\b i\e[23;66H\e[1m\e[7m\e[38;5;68m8 \e[22;8H\e[?12l\e[?25h\e[?25l\e[m\bit\e[23;66H\e[1m\e[7m\e[38;5;68m9 \e[22;9H\e[?12l\e[?25h\e[?25l\e[23;66H10\e[22;10H\e[?12l\e[?25h\e[?25l\e[m\b w\e[23;67H\e[1m\e[7m\e[38;5;68m1 \e[22;11H\e[?12l\e[?25h\e[?25l\e[m\bwi\e[23;67H\e[1m\e[7m\e[38;5;68m2 \e[22;12H\e[?12l\e[?25h\e[?25l\e[m\bil\e[23;67H\e[1m\e[7m\e[38;5;68m3 \e[22;13H\e[?12l\e[?25h\e[?25l\e[m\bll\e[23;67H\e[1m\e[7m\e[38;5;68m4 \e[22;14H\e[?12l\e[?25h\e[?25l\e[m\bl.\e[23;67H\e[1m\e[7m\e[38;5;68m5 \e[22;15H\e[?12l\e[?25h\e[m\e[24;1H\e[K\e[22;14H\e[?25l\e[23;67H\e[1m\e[7m\e[38;5;68m4 \e[22;14H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[11L\e[1;24r\e[1;1HThis is a test.\r
+\r
+Hopefully it will work.\e[23;63H\e[1m\e[7m\e[38;5;68m1,1   \e[9CTop\e[1;1H\e[?12l\e[?25h\e[?25l\e[27m\e[m\e[H\e[2J\e[13;1HI bet it will.\r
+\e[38;5;12m~                                                                               \e[15;1H~                                                                               \e[16;1H~                                                                               \e[17;1H~                                                                               \e[18;1H~                                                                               \e[19;1H~                                                                               \e[20;1H~                                                                               \e[21;1H~                                                                               \e[22;1H~                                                                               \e[m\e[23;1H\e[1m\e[7m\e[38;5;68m[No Name] [+]                                                 21,0-1         Bot\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m0,\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;63H\e[1m\e[7m\e[38;5;68m19,\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m8,\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m7,\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m6,\e[1;1H\e[?12l\e[?25h\e[?25l\e[1;22r\e[m\e[1;1H\e[L\e[1;24r\e[23;64H\e[1m\e[7m\e[38;5;68m5,\e[1;1H\e[?12l\e[?25h\e[?25l\e[24;1H\e[m:\e[?12l\e[?25hw\e[?25l\e[?12l\e[?25hq\e[?25l\e[?12l\e[?25h\r\e[?25l\e[38;5;15m\e[48;5;1mE32: No file name\e[1;1H\e[?12l\e[?25h\e[?25l\e[m\e[24;1H\e[K\e[24;1H:\e[?12l\e[?25hw\e[?25l\e[?12l\e[?25h\e[?25l \e[?12l\e[?25hf\e[?25l\e[?12l\e[?25ho\e[?25l\e[?12l\e[?25ho\e[?25l\e[?12l\e[?25h\r\e[?25l"foo" [New] 33L, 85C written\e[23;1H\e[1m\e[7m\e[38;5;68mfoo           \e]2;foo (~/vt100-to-html/test) - VIM\a\e]1;foo\a\e[1;1H\e[?12l\e[?25h\e[?25l\e[m\e[24;1H\e[K\e[24;1H:\e[?12l\e[?25hq\e[?25l\e[?12l\e[?25h\r\e[?25l\e[?1002l\e]2;mark-desktop - vim\a\e]1;mark-desktop - vim\a\e[24;1H\e[K\e[24;1H\e[?1l\e>\e[?12l\e[?25h\e[?1049l\e]0;mark-desktop - ~/vt100-to-html/test\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[57C\e[1;34m~/vt100-to-html/test\e[0m\e[77De\becho Yes!\r\r
+\e]0;mark-desktop - echo Yes!\aYes!\r
+\e]0;mark-desktop - ~/vt100-to-html/test\a\e[1m\e[7m%\e[27m\e[1m\e[0m                                                                               \r\r\e[0m\e[27m\e[24m\e[J\e[1;32m$\e[0m \e[K\e[57C\e[1;34m~/vt100-to-html/test\e[0m\e[77D\r\r
+
+Script done on Sun 15 Aug 2010 11:54:14 PM EDT
diff --git a/test/escape_sequence_files/t0504-vim.text b/test/escape_sequence_files/t0504-vim.text
new file mode 100644 (file)
index 0000000..7c20251
--- /dev/null
@@ -0,0 +1,25 @@
+t0005-CR.in               t0024-CUD.in           t0056-ED.in
+t0005-CR.text             t0024-CUD.text         t0056-ED.text
+t0006-IND.in              t0025-CUP.in           t0057-ED3.in
+t0006-IND.text            t0025-CUP.text         t0057-ED3.note
+t0007-space_at_end.in     t0026-CNL.in           t0057-ED3.text
+t0007-space_at_end.text   t0026-CNL.text         t0060-DECSC.in
+t0008-BS.in               t0027-CPL.in           t0060-DECSC.text
+t0008-BS.text             t0027-CPL.text         t0061-CSI_s.in
+t0009-NEL.in              t0030-HPR.in           t0061-CSI_s.text
+t0009-NEL.text            t0030-HPR.text         t008x-alt_screen_ED.in
+t0010-RI.in               t0031-HPB.in           t008x-IRM.in
+t0010-RI.text             t0031-HPB.text         t008x-NLM.in
+t0011-RI_scroll.in        t0032-VPB.in           t008x-save_cursor_mode.in
+t0011-RI_scroll.text      t0032-VPB.text         t0500-bash_long_line.in
+t0012-VT.in               t0033-VPB_scroll.in    t0500-bash_long_line.text
+t0012-VT.text             t0033-VPB_scroll.text  t0501-bash_ls.in
+t0013-FF.in               t0034-VPR.in           t0501-bash_ls.text
+t0013-FF.text             t0034-VPR.text         t0502-bash_ls_color.in
+t0014-CAN.in              t0035-HVP.in           t0502-bash_ls_color.text
+t0014-CAN.text            t0035-HVP.text         t0503-zsh_ls_color.in
+t0015-SUB.in              t0040-REP.in           t0503-zsh_ls_color.text
+t0015-SUB.text            t0040-REP.text         typescript
+t0016-SU.in               t0050-ICH.in
+$ vim                                                      ~/vt100-to-html/test
+Script done on Sun 15 Aug 2010 11:54:14 PM EDT             ~/vt100-to-html/test
diff --git a/test/escape_sequences.js b/test/escape_sequences.js
new file mode 100644 (file)
index 0000000..e23f5f9
--- /dev/null
@@ -0,0 +1,95 @@
+var glob = require('glob');
+var fs = require('fs');
+var pty = require('pty.js');
+var sleep = require('sleep');
+var Terminal = require('../src/xterm');
+
+var CONSOLE_LOG = console.log;
+
+// expect files need terminal at 80x25!
+var COLS = 80;
+var ROWS = 25;
+
+// primitive pty pipe is enough for the test cases
+var primitive_pty = pty.native.open(COLS, ROWS);
+
+// fake sychronous pty write - read
+// pty.js opens pipe fds with O_NONBLOCK
+// just wait 10ms instead of setting fds to blocking mode
+function pty_write_read(t, s) {
+    fs.writeSync(t.slave, s);
+    sleep.usleep(10000);
+    var b = Buffer(64000);
+    var bytes = fs.readSync(t.master, b, 0, 64000);
+    return b.toString('utf8', 0, bytes);
+}
+
+// generate noisy output to compare xterm and emulator
+function formatError(in_, out_, expected) {
+    function addLineNumber(start, color) {
+        var counter = start || 0;
+        return function(s) {
+            counter += 1;
+            return '\x1b[33m' + (' ' + counter).slice(-2) + color + s;
+        }
+    }
+    var line80 = '12345678901234567890123456789012345678901234567890123456789012345678901234567890';
+    var s = '';
+    s += '\n\x1b[34m' + JSON.stringify(in_);
+    s += '\n\x1b[33m  ' + line80 + '\n';
+    s += out_.split('\n').map(addLineNumber(0, '\x1b[31m')).join('\n');
+    s += '\n\x1b[33m  ' + line80 + '\n';
+    s += expected.split('\n').map(addLineNumber(0, '\x1b[32m')).join('\n');
+    return s;
+}
+
+// simple debug output of terminal cells
+function terminalToString(term) {
+    var result = '';
+    var line_s = '';
+    for (var line=0; line<term.rows; ++line) {
+        line_s = '';
+        for (var cell=0; cell<term.cols; ++cell) {
+            line_s += term.lines[line][cell][1];
+        }
+        // rtrim empty cells as xterm does
+        line_s = line_s.replace(/\s+$/, '');
+        result += line_s;
+        result += '\n';
+    }
+    return result;
+}
+
+describe('Escape code files', function() {
+    var xterm;
+
+    beforeEach(function () {
+        xterm = new Terminal(80, 25);
+    });
+
+    // omit stack trace for escape sequence files
+    Error.stackTraceLimit = 0;
+    var files = glob.sync('test/escape_sequence_files/*.in');
+    // first 44 are the most basic escape sequences
+    for (var i=0; i<44; ++i) {
+    //for (var i=0; i<files.length; ++i) {
+        (function(filename){
+            it(filename.split('/').slice(-1)[0], function () {
+                var in_file = fs.readFileSync(filename, 'utf8');
+                var from_pty = pty_write_read(primitive_pty, in_file);
+                // uncomment this to get log from terminal
+                console.log = function(){};
+                xterm.write(from_pty);
+                var from_emulator = terminalToString(xterm);
+                console.log = CONSOLE_LOG;
+                var expected = fs.readFileSync(filename.split('.')[0] + '.text', 'utf8');
+                if (from_emulator != expected) {
+                    // uncomment to get noisy output
+                    //throw new Error(formatError(in_file, from_emulator, expected));
+                    throw new Error('mismatch');
+                }
+            });
+        })(files[i]);
+    }
+});
+