Fixed lots of issues with installing a low-caps version of fshell from SIS file.
* Fixed issue in CCommandFactory whereby some APIs like GetCommandInfoL could trigger allocations on the wrong heap or signals to the wrong thread. The symptoms were often seen as a crash in the which_00 thread when running ciftest.
* Lots of build fixes for when FSHELL_PROTECTED_UIDS isn't defined and when all capabilities aren't available.
* Added new platform.mmh macro FSHELL_OPEN_SIGNED.
* Open signing of fshell SIS files is now supported for production S60 handsets. Build fshell with the FSHELL_OPEN_SIGNED macro defined (and without defining FSHELL_CAP_ALL or FSHELL_PROTECTED_UIDS) in your platform.mmh and submit \epoc32\fshell\fshell.unsigned.sis to https://www.symbiansigned.com/app/page/public/openSignedOnline.do . The following commands are not available when using Open Signing due to Platform Security restrictions: fdb; kerninfo; chunkinfo; svrinfo; objinfo; sudo; fsck; localdrive; ramdefrag; readmem; reboot; setcritical; setpriority. Others such as chkdeps, e32header, ps, and fshell itself will run but in a restricted capacity (for example, fshell will no longer allow you to modify files in the \sys\bin directory).
* Removed commands objinfo, svrinfo, chunkinfo, readmem, fsck completely when memory access isn't present - previously they would still appear in the help but would give an error if you tried to run them.
/-- These are a few representative patterns whose lengths and offsets are to be
shown when the link size is 2. This is just a doublecheck test to ensure the
sizes don't go horribly wrong when something is changed. The pattern contents
are all themselves checked in other tests. --/
/((?i)b)/BM
/(?s)(.*X|^B)/BM
/(?s:.*X|^B)/BM
/^[[:alnum:]]/BM
/#/IxMD
/a#/IxMD
/x?+/BM
/x++/BM
/x{1,3}+/BM
/(x)*+/BM
/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM
|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM
|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM
/(a(?1)b)/BM
/(a(?1)+b)/BM
/a(?P<name1>b|c)d(?P<longername2>e)/BM
/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/BM
/(?P<a>a)...(?P=a)bbb(?P>a)d/BM
/abc(?C255)de(?C)f/BM
/abcde/CBM
/\x{100}/8BM
/\x{1000}/8BM
/\x{10000}/8BM
/\x{100000}/8BM
/\x{1000000}/8BM
/\x{4000000}/8BM
/\x{7fffFFFF}/8BM
/[\x{ff}]/8BM
/[\x{100}]/8BM
/\x80/8BM
/\xff/8BM
/\x{0041}\x{2262}\x{0391}\x{002e}/D8M
/\x{D55c}\x{ad6d}\x{C5B4}/D8M
/\x{65e5}\x{672c}\x{8a9e}/D8M
/[\x{100}]/8BM
/[Z\x{100}]/8BM
/^[\x{100}\E-\Q\E\x{150}]/B8M
/^[\QĀ\E-\QŐ\E]/B8M
/^[\QĀ\E-\QŐ\E/B8M
/[\p{L}]/BM
/[\p{^L}]/BM
/[\P{L}]/BM
/[\P{^L}]/BM
/[abc\p{L}\x{0660}]/8BM
/[\p{Nd}]/8BM
/[\p{Nd}+-]+/8BM
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM
/[\x{105}-\x{109}]/8iBM
/( ( (?(1)0|) )* )/xBM
/( (?(1)0|)* )/xBM
/[a]/BM
/[a]/8BM
/[\xaa]/BM
/[\xaa]/8BM
/[^a]/BM
/[^a]/8BM
/[^\xaa]/BM
/[^\xaa]/8BM
/ End of testinput10 /