Added ENotifyKeypresses and ECaptureCtrlC flags to CCommandBase.
Commands can now get keypresses and handle ctrl-C via callbacks instead of having to implement custom active objects. As part of this extended the CCommandBase extension interface to MCommandExtensionsV2 for the new virtual functions KeyPressed(TUint aKeyCode, TUint aModifiers) and CtrlCPressed(). sudo now cleans up correctly by using ECaptureCtrlC.
/\x{100}/8DZ
/\x{1000}/8DZ
/\x{10000}/8DZ
/\x{100000}/8DZ
/\x{1000000}/8DZ
/\x{4000000}/8DZ
/\x{7fffFFFF}/8DZ
/[\x{ff}]/8DZ
/[\x{100}]/8DZ
/\x{ffffffff}/8
/\x{100000000}/8
/^\x{100}a\x{1234}/8
\x{100}a\x{1234}bcd
/\x80/8DZ
/\xff/8DZ
/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
\x{0041}\x{2262}\x{0391}\x{002e}
/\x{D55c}\x{ad6d}\x{C5B4}/DZ8
\x{D55c}\x{ad6d}\x{C5B4}
/\x{65e5}\x{672c}\x{8a9e}/DZ8
\x{65e5}\x{672c}\x{8a9e}
/\x{80}/DZ8
/\x{084}/DZ8
/\x{104}/DZ8
/\x{861}/DZ8
/\x{212ab}/DZ8
/.{3,5}X/DZ8
\x{212ab}\x{212ab}\x{212ab}\x{861}X
/.{3,5}?/DZ8
\x{212ab}\x{212ab}\x{212ab}\x{861}
/-- These tests are here rather than in testinput4 because Perl 5.6 has some
problems with UTF-8 support, in the area of \x{..} where the value is < 255.
It grumbles about invalid UTF-8 strings. --/
/^[a\x{c0}]b/8
\x{c0}b
/^([a\x{c0}]*?)aa/8
a\x{c0}aaaa/
/^([a\x{c0}]*?)aa/8
a\x{c0}aaaa/
a\x{c0}a\x{c0}aaa/
/^([a\x{c0}]*)aa/8
a\x{c0}aaaa/
a\x{c0}a\x{c0}aaa/
/^([a\x{c0}]*)a\x{c0}/8
a\x{c0}aaaa/
a\x{c0}a\x{c0}aaa/
/-- --/
/(?<=\C)X/8
Should produce an error diagnostic
/-- This one is here not because it's different to Perl, but because the way
the captured single-byte is displayed. (In Perl it becomes a character, and you
can't tell the difference.) --/
/X(\C)(.*)/8
X\x{1234}
X\nabc
/^[ab]/8DZ
bar
*** Failers
c
\x{ff}
\x{100}
/^[^ab]/8DZ
c
\x{ff}
\x{100}
*** Failers
aaa
/[^ab\xC0-\xF0]/8SDZ
\x{f1}
\x{bf}
\x{100}
\x{1000}
*** Failers
\x{c0}
\x{f0}
/Ā{3,4}/8SDZ
\x{100}\x{100}\x{100}\x{100\x{100}
/(\x{100}+|x)/8SDZ
/(\x{100}*a|x)/8SDZ
/(\x{100}{0,2}a|x)/8SDZ
/(\x{100}{1,2}a|x)/8SDZ
/\x{100}*(\d+|"(?1)")/8
1234
"1234"
\x{100}1234
"\x{100}1234"
\x{100}\x{100}12ab
\x{100}\x{100}"12"
*** Failers
\x{100}\x{100}abcd
/\x{100}/8DZ
/\x{100}*/8DZ
/a\x{100}*/8DZ
/ab\x{100}*/8DZ
/a\x{100}\x{101}*/8DZ
/a\x{100}\x{101}+/8DZ
/\x{100}*A/8DZ
A
/\x{100}*\d(?R)/8DZ
/[^\x{c4}]/DZ
/[^\x{c4}]/8DZ
/[\x{100}]/8DZ
\x{100}
Z\x{100}
\x{100}Z
*** Failers
/[Z\x{100}]/8DZ
Z\x{100}
\x{100}
\x{100}Z
*** Failers
/[\x{200}-\x{100}]/8
/[Ā-Ą]/8
\x{100}
\x{104}
*** Failers
\x{105}
\x{ff}
/[z-\x{100}]/8DZ
/[z\Qa-d]Ā\E]/8DZ
\x{100}
Ā
/[\xFF]/DZ
>\xff<
/[\xff]/DZ8
>\x{ff}<
/[^\xFF]/DZ
/[^\xff]/8DZ
/[Ä-Ü]/8
Ö # Matches without Study
\x{d6}
/[Ä-Ü]/8S
Ö <-- Same with Study
\x{d6}
/[\x{c4}-\x{dc}]/8
Ö # Matches without Study
\x{d6}
/[\x{c4}-\x{dc}]/8S
Ö <-- Same with Study
\x{d6}
/[]/8
//8
/xxx/8
/xxx/8?DZ
/abc/8
]
\?
/anything/8
\xc0\x80
\xc1\x8f
\xe0\x9f\x80
\xf0\x8f\x80\x80
\xf8\x87\x80\x80\x80
\xfc\x83\x80\x80\x80\x80
\xfe\x80\x80\x80\x80\x80
\xff\x80\x80\x80\x80\x80
\xc3\x8f
\xe0\xaf\x80
\xe1\x80\x80
\xf0\x9f\x80\x80
\xf1\x8f\x80\x80
\xf8\x88\x80\x80\x80
\xf9\x87\x80\x80\x80
\xfc\x84\x80\x80\x80\x80
\xfd\x83\x80\x80\x80\x80
\?\xf8\x88\x80\x80\x80
\?\xf9\x87\x80\x80\x80
\?\xfc\x84\x80\x80\x80\x80
\?\xfd\x83\x80\x80\x80\x80
/\x{100}abc(xyz(?1))/8DZ
/[^\x{100}]abc(xyz(?1))/8DZ
/[ab\x{100}]abc(xyz(?1))/8DZ
/(\x{100}(b(?2)c))?/DZ8
/(\x{100}(b(?2)c)){0,2}/DZ8
/(\x{100}(b(?1)c))?/DZ8
/(\x{100}(b(?1)c)){0,2}/DZ8
/\W/8
A.B
A\x{100}B
/\w/8
\x{100}X
/a\x{1234}b/P8
a\x{1234}b
/^\ሴ/8DZ
/\777/I
/\777/8I
\x{1ff}
\777
/\x{100}*\d/8DZ
/\x{100}*\s/8DZ
/\x{100}*\w/8DZ
/\x{100}*\D/8DZ
/\x{100}*\S/8DZ
/\x{100}*\W/8DZ
/\x{100}+\x{200}/8DZ
/\x{100}+X/8DZ
/X+\x{200}/8DZ
/()()()()()()()()()()
()()()()()()()()()()
()()()()()()()()()()
()()()()()()()()()()
A (x) (?41) B/8x
AxxB
/^[\x{100}\E-\Q\E\x{150}]/BZ8
/^[\QĀ\E-\QŐ\E]/BZ8
/^[\QĀ\E-\QŐ\E/BZ8
/^abc./mgx8<any>
abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
/abc.$/mgx8<any>
abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
/^a\Rb/8<bsr_unicode>
a\nb
a\rb
a\r\nb
a\x0bb
a\x0cb
a\x{85}b
a\x{2028}b
a\x{2029}b
** Failers
a\n\rb
/^a\R*b/8<bsr_unicode>
ab
a\nb
a\rb
a\r\nb
a\x0bb
a\x0c\x{2028}\x{2029}b
a\x{85}b
a\n\rb
a\n\r\x{85}\x0cb
/^a\R+b/8<bsr_unicode>
a\nb
a\rb
a\r\nb
a\x0bb
a\x0c\x{2028}\x{2029}b
a\x{85}b
a\n\rb
a\n\r\x{85}\x0cb
** Failers
ab
/^a\R{1,3}b/8<bsr_unicode>
a\nb
a\n\rb
a\n\r\x{85}b
a\r\n\r\nb
a\r\n\r\n\r\nb
a\n\r\n\rb
a\n\n\r\nb
** Failers
a\n\n\n\rb
a\r
/\H\h\V\v/8
X X\x0a
X\x09X\x0b
** Failers
\x{a0} X\x0a
/\H*\h+\V?\v{3,4}/8
\x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
\x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
\x09\x20\x{a0}\x0a\x0b\x0c
** Failers
\x09\x20\x{a0}\x0a\x0b
/\H\h\V\v/8
\x{3001}\x{3000}\x{2030}\x{2028}
X\x{180e}X\x{85}
** Failers
\x{2009} X\x0a
/\H*\h+\V?\v{3,4}/8
\x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
\x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
\x09\x20\x{202f}\x0a\x0b\x0c
** Failers
\x09\x{200a}\x{a0}\x{2028}\x0b
/[\h]/8BZ
>\x{1680}
/[\h]{3,}/8BZ
>\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
/[\v]/8BZ
/[\H]/8BZ
/[\V]/8BZ
/.*$/8<any>
\x{1ec5}
/-- This tests the stricter UTF-8 check according to RFC 3629. --/
/X/8
\x{0}\x{d7ff}\x{e000}\x{10ffff}
\x{d800}
\x{d800}\?
\x{da00}
\x{da00}\?
\x{dfff}
\x{dfff}\?
\x{110000}
\x{110000}\?
\x{2000000}
\x{2000000}\?
\x{7fffffff}
\x{7fffffff}\?
/a\Rb/I8<bsr_anycrlf>
a\rb
a\nb
a\r\nb
** Failers
a\x{85}b
a\x0bb
/a\Rb/I8<bsr_unicode>
a\rb
a\nb
a\r\nb
a\x{85}b
a\x0bb
** Failers
a\x{85}b\<bsr_anycrlf>
a\x0bb\<bsr_anycrlf>
/a\R?b/I8<bsr_anycrlf>
a\rb
a\nb
a\r\nb
** Failers
a\x{85}b
a\x0bb
/a\R?b/I8<bsr_unicode>
a\rb
a\nb
a\r\nb
a\x{85}b
a\x0bb
** Failers
a\x{85}b\<bsr_anycrlf>
a\x0bb\<bsr_anycrlf>
/.*a.*=.b.*/8<ANY>
QQQ\x{2029}ABCaXYZ=!bPQR
** Failers
a\x{2029}b
\x61\xe2\x80\xa9\x62
/[[:a\x{100}b:]]/8
/a[^]b/<JS>8
a\x{1234}b
a\nb
** Failers
ab
/a[^]+b/<JS>8
aXb
a\nX\nX\x{1234}b
** Failers
ab
/(\x{de})\1/
\x{de}\x{de}
\x{123}
/X/8f<any>
A\x{1ec5}ABCXYZ
/ End of testinput5 /