Description: Free Vision.

This file as text.
(active) Revisions in this set:
cee3065f9321d84ce0d76cf6c016a51814077c54,b6f0fa055f03a70056f4b9447fde0c880b0233bf,c10c9607f1bdd0810304842349acb812718dee47
28235033d742b7fb75e08fd661724b754e2d9d45,58d899bf75308e6b69159dd531e1daef7b4b06e8,ba4d10ade0776de1c8bb10a6a41d3afe33c9ee5d
1d2414a2b880b7c4320a6a6105472b298dc72177,db8f3eb0a7d55df62b6345be3e140c9cd19ba76c,9a2e1b99cb890ef06a238b37b7873fd6efd6b31a
2593a69eaf0a96b39821dab37f402efc0fbbf4ab,18a752d20ab3e0b1fd835d01a62d0843f6141af7,0a511ddb30bb1af327136091a99123f8876b105b
7d638a1e390970658014f762bcd8c8d743bc2e9c,f05c6666fe97f365f376fb3b7d8d8c0f6b91fb3b,d681d51e38659918dcef5a7322d286ee94dcd698
3e135c02e79abff3fc26da2319c811b007074d7b,4f482516ddfff69c94bdcc0872ca6e6e8d04ed4e,aac266e82de41fb899e2e2be34b8ca3ebcc02389
a8da1b51309069b1c274793ddf47472af131df2f,baa6525a9e73f885381e94a7a8acf03c2d4f406f,5648bd9bdc283697604608f4c9b43f18f85ad047
55c9af86f44712251fccf54d518205b5c39bad5d,ac81dc399611d348fe81df7a4a96288b2f6d1e13,4ea55963ef78a168686761578fc8a3e840279ee6
0f61895194672675bfcce07389a8099c71ce2fca,ab67fe179567312d0c8124086e22ea60b23f1aa1,97807af58d437998181982b77bb62cdee0e24a30
2b1297c3970f9815a35c3694920c634e0a30c3e3,0f8db5f590342c65f72e2d26faa4691a1929a1a9,9dd394a5f74d358db135dc4ad948879096080080
9c63675368559a4b41e15624190c09a0c0cf9164,ac4f00af1eaf877d9d6288b9df0b3e5be5e2eb6e,258ed213e43932ba3a44dd47264269517887c669
ba1450f7e9488e1ae05c6bf46f3c13065180f642,c23df60ae5c3f16bda2ce2e7530368a65324caa5,529c76504137cb99b98d11f153999410a38f6bf4
d3310cc731fea0ed1e3cb2bb473d93f53f6fc24e,23957bddaaaadc8f174367f135c82ad2f4809677,5f9f97e75d35f70a93bf8f95f8f3416093ea48fb
1961c8f27c62a67561d9844f433ef6db5175a548,d68e48d1ead5f2ad7d5fab090f094679ff632db9,97995773a0fd567f3528d0729285420715460a87
3c89ec6f83f2581ca0a8d42705424464a48d27c8,0f1a20b8a48722ff00214869c30a7e99883bdb4c,2d68b7c7a9e175fed0ea5607fa78e8a766041859
af12abc939bf12fbb48bd2ff4759f5021c057311,9a82b32cde500d92b029746ad3c0847612f64187,7e16f651ea41f4657d327d97f266ec196dcb40db
d8d6c857e59bdedba1657b56aef66c3818b84726,889e50ed58004611c225ceb82e6559f573072679,774317788f1b2c3442ef78a759d9a60a8c7aff89
da978acfd97eaf08a66038b151f7f83cca83d769,982a4f4c63a4fcf424b9ff998f8aab846bced537,1e94304bf04a36497098ff282bdb0d64de6bb3db
41b93832c0ffe6c05cd2b14796642a9979414a6e,5c6d6b030d0ef310f3b83470474c25c2f9332d3c,0b850d9883e8d956a749585a212f6c0473126159
fe60708baca8ae1d15e81ae8f6c1aee2d2b09e85,bf3865a15a9429658c230b017d641e05cc38348b,0e7f562d19387dfd8e60a6f67dd1754496927888
dba71de45bd7b7750383aec27608e092783b50f1,bac79df17e156e6b2cdc457ee586b4cc1957d01d,504bd61c7f56caebec1cf8fd75bbe11d8fe7d1eb
36899f65cf83f3f6f23428c313c561b02bca139e,1c86c0de48b20fdb2dd80fe4c867f4243eb1aa9e,eaa60e45465f1ab252030ee8fb79d201a6872a3c
4034dcc2c68797c8159978fe6d5a68b550a589c6,ead1eab3d7342ac6476ee87e871f6214872e5b1f,b5575c0829373904a10e532dac7ef26764705ad6
e583341877ff53bff386d038c2e387a224751121,837659f4201aab4fee9c8678fe51ac8a3218ca16,c964eab85d726ede55c745c4a0b9187fada7c858
6aa8b718f46b6926836aff4e40cda9e868701eb8,b8dfa1b8e68946db2ce52deb37c681eccba73418,f8320dff082272a41e6a2d6d0f8a5ba50b4ea80b
0d1fef96a1d0b4c7c70f9eed24b6a8997e3e109b,b13c8e3ef68607a7a37694fc1605dbb743e8650b,ea3124ed4af17414c0526ffac7a80b6ac6178842
cb6ba25e1b1a23ac2dfb3c17afb6ada075b54b9b,d5283cae7fa84ede4b82743a762bebd51ede8a55,d4913f490f30a2f4521573fadd6229f0a7e6402a
2746b0e035f558d7b67366a5633f929e73ed452e,453bdaaafc71dcc467528063395aa3188886df6d,11db30ab3d347f358f6ca5e86bc1640f8930c11c
4864aba47a325c28674bc9581ed2cde92b94b016,6109c5606624c41923a1b3bb5ba2107e586ef2a9,ec0fa8f46f25ec4f307486dc6fc9b7fe2d8c3bc0
834a6579d7ea7caab3b8e40d2a94ab6bda4dc198,75db39f06434280c32980480d52def9c188a2c66,44213e33895210b0b1ece2353414355ea364dbd8
28cc421b13ded883a6c2e6c39a7d2e3ee63271f6,3d4a242974f5290302e7afc1f18cb462ce6942a7,c5541e9376af14246897f7013d1a72a62da7032f
1f3e903c107ef366b8c1ed2d57e4e1efdad13d02,b564e400fc76fa5f429922849a96580d6494bfac,4b0edb61153aa71dea42c1f6e270daf72753384e
0d76565e50239b58176c9d8a298677c2093ac3a1,8a7ba17e12daa3e03c89e4794daa07e852105f57,3297a453ea0717b1c4858015adc494c4dd467239
ae339ed8fb7d5678db9d5f9db3df4002a21074c7,7fd8562d4a19c3d271ca9d8ea912d006d1b8012c,6fa787674f53b7e01dfb9f2de12e92367c44ba0c
98132ce24e7eab0793065dea5d91d14ae8a4e075,c9cc530d948d4270e528b63ba2bb13493366d907,6198d4a0a1eabe00f5ba947f24747f5c1bab9f94
bb06c623c3100372c1cf7a769da0d7bf1eb94ce0,766162a3481880e0c0533c0309aeb9fd19a0e545,e8a0abf075a6ac777b3928f5623f6f3e67a0050a
763124567d20c79d6bdd9ca550899588367bad2a,2b0cdc0c15d6012f580a1e2e578ab1de291c5bd4,c540ef3bf85d0bb8298d57025400e8fa1af4323a
86f36c66c048f4ed692d829fcbd4a28e2f9b7a7b,8b0747f5529cafaf0823adcb7d9c1184f09a2f04,346cf6a32ff9d360f363715b940d081d713a475c
17b748ef9ae87cdff765ff1aedfdf23f643f7367,08c5d9b00773c9f1bbf7d703109ba9cab2b89654,eb6d1dc73f9b2694fe6baf692936a65939c026b3
4ff66758ee71ffdc5a99b86c3b824a0ab5f81b66,ad35f14017ab89059ee8c608c77a34d93f902cd9,c92235f4fd4c9430e3468e3b17868a68ccbd459a
3f0d1aca089fbc674fbd8a1e82674e4726d03c0d,0172420df7dd4f317c050084d39ee271a6eba17a,d373397f30324be8f0e7f1085ed5322e17bd22a3
0fe68e7c9edc24226fdfe9fe93d6ceef9fce4824,d659c731d8277b7beca49e25df704dc51259eaa4,92334d86dfafcacc31c0c2b5c184c029e8ad2cdb
e1da44c21913bcfb21cd404276d37dd726ee11ff,78862011b2dc79757a001c92b0e7bfa975ce5723,29dfb6131e6e1819591bf69a009387c6c8dfd07d
90b422b2d44eb1b54cd9c98d9bed8e6f97686296,cb6a66fed0ddde682706434bf638b8158b616396,1ffb6c6fdf22c24e7740462c04d025df8b2d84ec
047b435131103d0c4018745899b2cf2bb6a9e2ad,88e960cd00ee0f4efc259fce11e6c0eec287c0a9,f5005e46469f038ac3debcba16407bdb9f5c4e84
a9a0dfeae387f49a9108263f5498f78cbe024ca2,79aac426fd35f18a52a986656abd7de8cdf84c95,ddde3628ba2c1da90fd28622221996cb341ba59f
5dae243ffd4b2820b7e0bb54eeeefdb4e3bb2a30,2cfab10cb1f9f6f6e44d438576db61d56f5aac99,297e9881c6f6fda8865e50267e033cc68224724d
5e9ba29d89a34e1cc14f95f6ce47b7b87e6e683e,ddd262168846fbf2ba5372114ada135af71225cd,4d7538a0da03e8c177c4367d1e7080bc73fd04f2
5b5f6b71581e282d9e7b68f953eb682269f9c79e,0d844aaa4150d4884ebd1ad411c791fe779e41db,7cf1d227fb2435978788ec6f283a7410d5e544e8
f0adf5d6120953274e901e055edbb29b42b7f616,25cf57b085ad8043e1a7a82ac4ea5f1335a8b537,d5ef64fb91cddc665f25bf57c93d1d442604843a
6e845e397fd1d96c6be0ad0caac80bde3c34b27e,1d0ec1b96671437913c86e35deffd2f28a1ac153,5013e7039a3dc30df510941eac1cd365a50fe10a
1a643e250a070d873a2c7b4253767bf457a85643,f64bd5c07974559809148d0872f786122b881b1f,d41d6de6ec40a38ef495924e4cb77fb2cd5f3d15
829404a9570e15839ef15b845b43c009afe2055b,be726fdd09e05de3695f7eb75e8b95c17d02e8f0,55337def9ab243847853ef9b1dd58c0b564fcabc
057b786fbde4ec4963a9d67dc57fe6daa0791642,8a0a97576a5e762d6e6be33b82ea40acc06e8009,b8baf3bb85be26c3e10dfcb44ab61d3d98bd7738
7da5856dbd930ff246d76ec588438b7cceb87b49,1c9c84d01eb06bc3550d67836db2926f54eebde2,af4d301af9beb51331fdd864bceda75e1710f2f6
6cbf84eca626981e19a379371614a77b1838a6fb,5d3d64b3409efd9a109aa87f6bf2008a8da4b85c,c466caa0c8b439e563c41259d98a872abb77b0d2
98f42567130bbd6e47b357b93137f516b7ee8d1a,2ac661f63e21363d0715a4d213f8a1710ac8f660,5843d66a38276a1752766f5dfb853f44bdb08d16
d96b84cf1f81413e6ff8f8978b7712e34cbe2e88,9c4d842a6f6c80a1972d5ad8aaf47e66a3b7890a,b240b78c9fcb5daef7388e60f6287e7f93ec308a
b8a2c613e31d808436a13ba2f747801f27632e42,c0482743af23100033e1af8490abc856ed70a580,6c0491f7c2faf4f9c6ef7ad68e9ce5315fed1291
8dc55d82942d36a5723b2b97f4ec5699563edb14,818d3f2f6c112fd8c2fb70e7128e198eb7a0d1aa,a7e63b66ae0197943a89d4be7431acf61d302407
e583ba6cfaff78c2b890a32fbf00fd96bbc71237,545dd0353bfc15751c6d317370fb790d304647c8,89c7ae42afc2511a8cb40000db251f8fbfec4c9a
8ed768d48613b3f49621fe839f1be290def49abf,f04d87bc3da1959e635b1645c4f8bfb36ef7f5f6,1b27a955fa60036ea77d34629d963f104a3bdc10
0d171d91ae78ee7513370574128c5ca22789f613,c271a7106018c7acc056a2ef6bc01b0836923f1a,fb7fdfaae438b1497c6041755bfb15dada8cffc0
1bc06ec2767faca0764880bf70605a1fcacdd2af,83e492235e99c1ae079c87995be30b5d624370c9,9b419b800a2ab0a588615efd4b98f6190201c007
60a7eac72b9292decc314749d9f5a12f4d48ac20,febcfc8d20d5a57544fe394a8b4754731e68943c,91167f41a6f53a6db27085ab0ed9e930ede13ea9
700b30851e8b1294a78c9a50d4619e26f011c3ca,1bedcef063aa9e1753f6905afa4d1a65cc378a04,fdfc40e86bcfaa5f45bdc87eb8fa74a01b3be8f6
8751e983397d0712e92c7d19bd2c8f7a8d02a41c,cc643608a22e9410c9d6391f40a7ffd9480aa9eb,59a60856dc0dff4041ff1f4cb33629a6aa04fbd6
17f7cb0e45ac10f19dcb7e883365c2c365d1c16d,e539696f29a48912a4e2cd92b9f8b0210a5e0535,4944e9296fc9c3b55367babf31928e8fa7169369
75e42870ae10ee5d446ab6d4d8335aa7eb02269e,b6d2c6ccb721bc8707fc992c407cb695a5c5eef7,646ddb82173c7a55d7b4fa34c7b2cc75e9fa7c87
2ecca003dd15e8f7c082eeb3c2ff6ea141487017,d4be82e87988cfe921c8843cbe6856176a1209d1,f9cfc0aeb4de2e6ecb347b011ad2ab2ff2cac007
ca1b315e2799cc3c94e9485312d1b7d2b36a60fb,7b71eefbdfeab44a93695f93dfefac81fa8d09fb,c669b8ac83adfd33d415f1e52cfca03a36cb74bb
46586902f4c11be78d26048061e7203da14ae9e9,ea0213810b5f08a5c8df9ec16c160547101b0151,6bef792f3303eba2da048ad8a9950cac2c2a787b
028c06219290b7f1aa35c581e27b7a7dcfdc2ed8,de770cf1bea6238680853db72816a29f55098760,fe7324a04ca69b5d3f76fded91041f21111c671c
c63534af487eb2972f258fcf5d84a91f9c902095,1c9fb8ec7dc83230dd264147ddc167eb5f323804,3dfefc25efa6ebced10e2e2dbde187130bbab2cc
fe312ab99ff41531686afed3ce0f7446d928a765,ddd87e09ff91b16d0926a857787e753eda4baff0,00beafae5be8d267469128964c6e901a6817e0c3
1b1facf87991774ff536acd4bddbd00faac243bc,38ef18b4f4af21230d751a546f71065ecd3512af,3c3f43ac665385b2c259c5930da9452682ba3cb8
2f442ab6d09cee0c7675eee9578288609f6fc510,306cfa83e4f044665e23369d2ddd1bb513c8b839,b681e2cd7fb8c12eb55d374b2adc7e247706205f
2181e7c61d14e894cabe6bae050720561164b685,0c2a1ffba8bb86294b226db30e4f744eb2b1da9c,78c3b698b183c690592e3f63fa8b2e6c12618607
4b6eea19189dce34125eb0e3de74b07de5cf8e43,40870af6a7dc39322622f7c4646b974c0d0800be,6ca821950d7dcd8579bd1e87ca22049aaf9e8b8d
41a51e8e4a6220935ff65f6e313c80380c71c1e9,af19d2a98285e96995898cfee325f97cd706a9b2,52a29e0ba7e6dbf5cdc6dc0ba9b60c88e2307856
0b7d4801b077856035a56c7a67806210306df21d,3149506d7f82ed315a809a0c76c10daf9c4ce3f1,c1dca28cc5759a9190089849e83d6dd3c72a77e2
a57bda94defdebc54a9ea26cbda85d7fe6ab377e,6aacb9696184f25755a7a0c51041eb953c60808c,088a52a1cec23092d2c918cb121b44bd9391ee74
12fb58325a6a24663582762f7296fc903cef3420,063133f2f5726e0f71d74149c2f522ecd37a882e,2abcf62a958476ba80b78b3c7875d9272d9f7e90
14af3cb5cb48b39589a28dfd34618cdcd6000ca0,df95478d19bceedd41a86dbc3c8c006e91b2a0a3,77279fb5ef2f4712d38ccd1fcab59f9f9e9802e1
62f8899c1b13c58ab3d318c55c607ccefab9b811,ed670d2ce7ea9d99f1dbd915d5adbd41f5467137,ed0ec9468095a870767b3cf0e54a9603548bcd98
ce9e1e84669018bcd10c9cf3b163af37b66e0c54,40eede3a7a778d383ce2156a595069b320fd8aa0,1c961a498677e41dd210869e4877a27a21cbddfd
da569e952e0123da0e54570dfe32b5377e671939,15ff16d85218ad77941878493af4b120cb11da47,2208b55f767117cfc5a32df3f81c44e8001e7624
5a8434234869887dae77479507af8bdc94c11cf0,0b8a0fb495ded3cc71e4a44c6174216922ebcd36,af5f75fd5adc53383a654e8f9849117c2219fe52
41e32d0fbad6ad541959802590c4cdb12d857cbb,9f22623459866915d8769bd2e6cd9c8a75357c6e,398c6519a541c47a6d86271daae53b2562fee0ee
55b8fd6e9425fe627352930a716c0871393e7d96,4ed7bd9f668123b7a20a2f871ed36a024e41596f,91ccf4e9c643917472cd55d42094c2a1c29e05ac
e1e939c844b4c285cdb52be178b938f5e9a44a0e,c881067b2395609448fdc7b49fce076b13ffae93,501b2d6c6f48a43a1cf695fac795abca45cd0536
6345a25304ed2de2cd28dadc24e4b5bc57d1a7c2,25a681295a2ee176bd00493b02addc8cbc384139,ac9feac2c86dfd118f017f7462072805be95ec97
aee5a58000dcc2f7c0dd6fa0bc6bffacf07470af,e79fbff1545e41545141a14e1c4953d301370c7a,61623c43ca57cce7deec020cf68e9cabc683ad57
3eae0213be485a9c4a7384796bb4639ae3317cc9,3564d5e34a9a3dfa02ddef37ec9498afa40848e0,28732fffa2f153ea55cd450a075ab484111a2e7a
0d9298f01aaaf8c137bef8ad4fc8f7a603e70db7,5121e2c259c12411ea77fac454a83e498f0bd7d8,921a72566f396e58fad456700d34cac40830d935
f49675c4fe286879131001986f7707fc3aad2ac6,f227efb2589e121cbeed03ab1024b89b25674615,f67c4b1c454ba1d62a8a83db3fa93752a2ee7457
95ba16228a8018187bf4e1a1d6324ede023efede,935467ae2320ef36021d6428752ea6b26cfdae74

Clicking a revision will expand files
 


+ introduced the TEnhancedKeyEvent record
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


+ added functions GetEnhancedKeyEvent and PollEnhancedKeyEvent and implemented
default fallbacks, which revert to calling GetKeyEvent and PollKeyEvent for
drivers that don't support the enhanced functions
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc
  • M packages/rtl-console/src/inc/keybrdh.inc


+ also invoke TranslateKey to get more data (either Ascii or virtual key translation)
when converting a TKeyEvent to TExtendedKeyEvent
+ also fill UnicodeChar from AsciiChar if AsciiChar is in the standard Ascii range
(#0..#127)
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc


* switch to using ReadConsoleInputW instead of ReadConsoleInputA in the windows
keyboard unit. This way the console input is read using Unicode and is later
translated to the OEM character set via WideCharToMultiByte. This is will
allow returning Unicode character codes once enhanced key events are
implemented.
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp
  • M packages/rtl-console/src/win/winevent.pp


- removed redundant setting of result in TranslateKey
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ initial implementation of a windows key event to TEnhancedKeyEvent conversion function
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ added the NilEnhancedKeyEvent const (equivalent to the value 0 of TKeyEvent)
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


* use x:=NilEnhancedKeyEvent instead of FillChar for setting an enhanced key
event variable to 0
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ overloaded the = operator for pairs of TEnhancedKeyEvent
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc
  • M packages/rtl-console/src/inc/keybrdh.inc


+ implemented SysGetEnhancedKeyEvent and SysPollEnhancedKeyEvent for win32/win64
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* use :=NilEnhancedKeyEvent instead of FillChar to clear the result of ConvertToEnhancedKeyEvent
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc


+ implemented generic conversion from enhanced to legacy key events as well
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc


* handle nil key events properly in ConvertToLegacyKeyEvent
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc


+ switch the win32/win64 keyboard unit to use enhanced key events (they are
converted to legacy key events by the generic converter in keyboard.inc)
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ introduced TEnhancedShiftState. Not used yet, but will eventually be used inside TEnhancedKeyEvent.
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


+ added generic Shift, Ctrl and Alt values to TEnhancedShiftState
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


* TEnhancedKeyEvent.ShiftState changed to TEnhancedShiftState
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc
  • M packages/rtl-console/src/inc/keybrdh.inc
  • M packages/rtl-console/src/win/keyboard.pp


+ detect and return the state of num lock, caps lock and scroll lock in the enhanced shift state on win32/win64
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ introduce TFPKeyEventRecord - a wrapper record around TKeyEventRecord, so it
can store additional data (not added yet) to our keyboard events; this way we
can later add extended shift state (e.g. distinguishing between left and right
shift), etc.
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ add enhanced shift state to the TFPKeyEventRecord object and call
transEnhShiftState only in HandleKeyboard, when the new key event is added to
the queue. This way we can use GetKeyState to determine the parts of the shift
state that are not in dwControlKeyState.
* transEnhShiftState moved to be a local function inside HandleKeyboard to
ensure it's not called outside this procedure.
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ introduced TEnhancedShiftStateElement - an enum type, containing the elements of TEnhancedShiftState set
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


+ distinguish between left and right shift and detect num/caps/lock key down using GetKeyState
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


- get rid of the ss:TEnhancedShiftState local variable in TranslateEnhancedKeyEvent
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ introduced unit UnixKvmBase, which is going to contain miscellaneous routines,
commonly used by the unix keyboard, video and mouse units. Currently, it only
contains the UTF8Enabled function, which was moved away from the video unit
and which will also be used by the keyboard unit in the future, as soon as
that unit also gets UTF-8 input support.
Commit consists out of
  • M .gitattributes
  • M packages/rtl-console/fpmake.pp
  • A packages/rtl-console/src/unix/unixkvmbase.pp
  • M packages/rtl-console/src/unix/video.pp


+ added a global variable Utf8KeyboardInputEnabled in the implementation of the
unix keyboard unit. Initialize it in SysInitKeyboard with the value, returned
by UnixKvmBase.UTF8Enabled (the same function that checks whether UTF-8 output
should be enabled in the video unit).
Commit consists out of
  • M packages/rtl-console/fpmake.pp
  • M packages/rtl-console/src/unix/keyboard.pp


+ return enhanced key events in the unix keyboard driver; unicode not supported yet
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ handled the 'center' (numpad 5) key properly in linux, xterm and gnome
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* gnome3 (clarifies gnome version tested)
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* fixed Shift-F1..F8 on the Linux console
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ added shift state to the escape sequence structure
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ add shift state to TTreeElement and DoAddSequence
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* modified ReadKey to return TEnhancedKeyEvent (partially constructed - contains only asciichar and virtualscancode)
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* moved ReadKey after GetEnhShiftState, so it can be used to return the shift state
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* return the shiftstate in ReadKey
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* the variables only used by ReadKey made local, and not visible in its nested routines
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* simplify an 'if A' followed by an 'if not A' sequence to 'if A then...else...'
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* fixed off-by-one error when putting a character back into the input buffer
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ introduced PutBackIntoInBuf - procedure that returns a key back into InBuf
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed the IsAlt parameter from ReadKey, because it is not used
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed the IsAlt local variable, because it is not used
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed some no longer used commented out code
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed FAltKey, because it is not used
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* set char to 27 for the Esc key (for the linux patched console) in the sequence table
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* handle sequences that return both char and scan code
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* the type of key_sequence.char changed from byte to 0..127 to enforce ASCII only use
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed check for the kbEsc scan code, since this is now made redundant,
thanks to the fact that the sequence can return both non-zero AsciiChar
and ScanCode at the same time.
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed commented out code
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


- removed commented out code
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* simplified the initialization of MyScan, since ReadKey now returns a record, that contains both AsciiChar and ScanCode
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* initialize SState from the shift state, returned by ReadKey
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* moved the 'if not again' part after the repeat..until loop; it behaves the same, but improves code readability
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ added UTF-8 keyboard input support
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* reject surrogate characters when decoding UTF-8 keyboard input
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* preserve the unicode keycode returned from ReadKey in the result of SysGetEnhancedKeyEvent
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ add ConvertEnhancedToLegacyShiftState to the interface of unit keyboard
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


* switch to using enhanced key events in the drivers unit
Commit consists out of
  • M packages/fv/src/drivers.pas


+ add TEvent.UnicodeChar to the drivers unit
Commit consists out of
  • M packages/fv/src/drivers.pas


* fixed the linux keyboard patching table for handling F11 and F12 properly
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ also patch Ctrl+F1..Ctrl+F12 when running as root on the linux console, so they can also be read properly
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* fix typo in comment
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


* fix typo in comment
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ added essAltGr to TEnhancedShiftState and added proper AltGr handling for the Linux console
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc
  • M packages/rtl-console/src/inc/keybrdh.inc
  • M packages/rtl-console/src/unix/keyboard.pp


+ added proper Windows AltGr support for the enhanced shift state
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ enable the enhanced key events permanently on windows
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


- removed the no-longer-used code for dealing with the legacy key events
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* fix typo in comment
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* CheckAltGr moved above HandleKeyboard, because it will be invoked from there also
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* update the keyboard layout info before every keystroke, since Windows can
change between multiple layouts, while the program is running
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* optimized UpdateKeyboardLayoutInfo, so it only calls GetKeyboardLayout once
and only performs the HasAltGr check in case the keyboard layout has actually
changed
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


+ added comments, explaining the enhanced shift states in detail
Commit consists out of
  • M packages/rtl-console/src/inc/keybrdh.inc


+ added comment about a Windows bug, which causes the keyboard layout change
detection code to not work
Commit consists out of
  • M packages/rtl-console/src/win/keyboard.pp


* refactored slightly the BEOS ifdef in unixkvmbase.utf8enabled
Commit consists out of
  • M packages/rtl-console/src/unix/unixkvmbase.pp


* check the LC_CTYPE env var instead of LANG on OpenBSD to check whether UTF-8
is enabled
Commit consists out of
  • M packages/rtl-console/src/unix/unixkvmbase.pp


+ initial attempt at defining an enhanced video cell record for the Unicode support in the video unit
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


+ added the EnhancedVideoBuf global variable to the video unit
Commit consists out of
  • M packages/rtl-console/src/inc/videoh.inc


+ introduced OldEnhancedVideoBuf
Commit consists out of
  • M packages/rtl-console/src/inc/videoh.inc


* use UnicodeString instead of WideString in TEnhancedVideoCell
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


+ introduced initialization of the video unit in enhanced (Unicode) mode
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


* formatting
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ support both legacy and enhanced video buffers in Video.ClearScreen
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


* fixed off by one errors in the new video unit routines
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ added operator = for comparison of TEnhancedVideoCell records
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


* switched the windows video driver to use the enhanced (unicode) video buffer
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


* use CP_OEMCP to convert characters in LegacyChar2ExtendedGraphemeCluster
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


- removed useunicodefunctions from the windows video unit
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


- removed the cp850 code page mapping from the windows video unit (it is no longer used)
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


- removed unused variables and types from Video.SysUpdateScreen
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


* LineBuf converted to dynarray (to avoid buffer overflow for too big consoles) and made global to avoid reallocating it on the heap on each screen update
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


* all integers replaced with smallint, in order to be able to introduce objfpc mode
Commit consists out of
  • M packages/fv/src/app.pas
  • M packages/fv/src/asciitab.pas
  • M packages/fv/src/dialogs.pas
  • M packages/fv/src/drivers.pas
  • M packages/fv/src/editors.pas
  • M packages/fv/src/fvcommon.pas
  • M packages/fv/src/inplong.pas
  • M packages/fv/src/memory.pas
  • M packages/fv/src/menus.pas
  • M packages/fv/src/msgbox.pas
  • M packages/fv/src/outline.pas
  • M packages/fv/src/resource.pas
  • M packages/fv/src/statuses.pas
  • M packages/fv/src/stddlg.pas
  • M packages/fv/src/tabs.pas
  • M packages/fv/src/validate.pas
  • M packages/fv/src/views.pas


* drivers.pas moved to drivers.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/drivers.pas packages/fv/src/drivers.inc


+ added drivers.pas that includes drivers.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/drivers.pas


+ introduced unit udrivers, which calls InitEnhancedVideo instead of InitVideo (i.e. enables unicode mode in the video unit)
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/drivers.inc
  • A packages/fv/src/udrivers.pas


* views.pas renamed views.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/views.pas packages/fv/src/views.inc


+ added views.pas that includes views.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/views.pas


+ introduced unit uviews, which is going to be the unicode enabled version of the views unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • A packages/fv/src/uviews.pas
  • M packages/fv/src/views.inc


* switched the fv units to objfpc mode
Commit consists out of
  • M packages/fv/src/platform.inc
  • M packages/fv/src/stddlg.pas


* partial unicode conversion of the views unit
Commit consists out of
  • M packages/fv/src/views.inc


+ unicode version of MoveCStr
Commit consists out of
  • M packages/fv/src/drivers.inc


+ unicode version of MoveStr
Commit consists out of
  • M packages/fv/src/drivers.inc


+ unicode version of CStrLen
Commit consists out of
  • M packages/fv/src/drivers.inc


+ unicode version of MoveChar
Commit consists out of
  • M packages/fv/src/drivers.inc


+ unicode version of MoveBuf
Commit consists out of
  • M packages/fv/src/drivers.inc


* unicode fixes in TFrame.Draw
Commit consists out of
  • M packages/fv/src/views.inc


* TTitleStr redefined as UnicodeString in the unicode version of the views unit
Commit consists out of
  • M packages/fv/src/views.inc


* unicode conversion of TScrollBar.Init
Commit consists out of
  • M packages/fv/src/views.inc


* unicode version of TListViewer.GetText
Commit consists out of
  • M packages/fv/src/views.inc


* unicode fixes in TListViewer.Draw
Commit consists out of
  • M packages/fv/src/views.inc


* unicode version of SpecialChars
Commit consists out of
  • M packages/fv/src/views.inc


* unicode versions of TView.TextWidth and CTextWidth
Commit consists out of
  • M packages/fv/src/views.inc


- removed the posidx, because it seems to be unused
Commit consists out of
  • M packages/fv/src/views.inc


* TWindow.Title changed to UnicodeString
Commit consists out of
  • M packages/fv/src/views.inc


* outline.pas renamed outline.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/outline.pas packages/fv/src/outline.inc


+ added outline.pas that includes outline.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/outline.pas


+ unicode version of unit outline
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/outline.inc
  • A packages/fv/src/uoutline.pas


* menus.pas renamed menus.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/menus.pas packages/fv/src/menus.inc


+ added menus.pas that includes menus.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/menus.pas


+ unicode version of the menus unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/menus.inc
  • A packages/fv/src/umenus.pas


* histlist.pas renamed histlist.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/histlist.pas packages/fv/src/histlist.inc


+ added histlist.pas that include histlist.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/histlist.pas


+ unicode version of the histlist unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/histlist.inc
  • A packages/fv/src/uhistlist.pas


* app, dialogs, msgbox and validate unites renamed .inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/app.pas packages/fv/src/app.inc
  • R100 packages/fv/src/dialogs.pas packages/fv/src/dialogs.inc
  • R100 packages/fv/src/msgbox.pas packages/fv/src/msgbox.inc
  • R100 packages/fv/src/validate.pas packages/fv/src/validate.inc


+ added .pas files that include their respective .inc files for the units app, dialogs, msgbox and validate
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/app.pas
  • A packages/fv/src/dialogs.pas
  • A packages/fv/src/msgbox.pas
  • A packages/fv/src/validate.pas


+ added unicode versions of the app, dialogs, msgbox and validate units (unicode conversion not completed yet)
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/app.inc
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/msgbox.inc
  • A packages/fv/src/uapp.pas
  • A packages/fv/src/udialogs.pas
  • A packages/fv/src/umsgbox.pas
  • A packages/fv/src/uvalidate.pas
  • M packages/fv/src/validate.inc


* updated the uses clauses of the unicode versions of the app, dialogs, msgbox
and validate units to use only unicode units in their uses clause
Commit consists out of
  • M packages/fv/src/app.inc
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/msgbox.inc
  • M packages/fv/src/validate.inc


+ introduced the FVString type
Commit consists out of
  • M packages/fv/src/drivers.inc


* use FVString in the interface part of the validate unit
Commit consists out of
  • M packages/fv/src/validate.inc


* fvcommon.pas renamed fvcommon.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/fvcommon.pas packages/fv/src/fvcommon.inc


+ fvcommon.pas that includes fvcommon.inc
Commit consists out of
  • M .gitattributes
  • A packages/fv/src/fvcommon.pas


+ ufvcommon unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/fvcommon.inc
  • A packages/fv/src/ufvcommon.pas


+ introduced Sw_String
Commit consists out of
  • M packages/fv/src/fvcommon.inc


* fvstring replaced with sw_string in the drivers/udrivers unit
Commit consists out of
  • M packages/fv/examples/testapp.lpi
  • M packages/fv/fpmake.pp
  • M packages/fv/src/drivers.inc


* use ufvcommon in unit uvalidate
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/validate.inc


* replaced fvstring with sw_string in validate.inc
Commit consists out of
  • M packages/fv/src/validate.inc


* use ufvcommon in uviews
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/views.inc


* use ufvcommon in uhistlist
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/histlist.inc


* use ufvcommon in unit uapp
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/app.inc


* use ufvcommon in udialogs
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/dialogs.inc


- reduced number of ifdefs by using sw_string in unit views/uviews
Commit consists out of
  • M packages/fv/src/views.inc


+ use Sw_String in unit menus/umenus to reduce the number of ifdefs
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/menus.inc


+ use Sw_String in unit histlist/uhistlist to reduce the number of ifdefs
Commit consists out of
  • M packages/fv/src/histlist.inc


* some interface unit compilation fixes in the udialogs unit
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ introduced type Sw_PString
Commit consists out of
  • M packages/fv/src/fvcommon.inc


* more dialogs unit unicode conversion
Commit consists out of
  • M packages/fv/src/dialogs.inc


* umsgbox unit interface unicode conversion
Commit consists out of
  • M packages/fv/src/msgbox.inc


+ use unit (u)fvcommon in (u)msgbox
Commit consists out of
  • M packages/fv/fpmake.pp
  • M packages/fv/src/msgbox.inc


+ introduced Sw_ExtendedGraphemeCluster
Commit consists out of
  • M packages/fv/src/app.inc
  • M packages/fv/src/fvcommon.inc


* unicode fixes in the implementation of the TBackGround object
Commit consists out of
  • M packages/fv/src/app.inc


* unicode fixes in the implementation part of the uapp unit
Commit consists out of
  • M packages/fv/src/app.inc


* unicode conversion of the msgbox unit implementation, as well as the FormatStr function
Commit consists out of
  • M packages/fv/src/drivers.inc
  • M packages/fv/src/msgbox.inc


* unicode fix in TDialog.ChangeTitle
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fix in TDialog.NewLabel
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fix in TInputLine.Init
Commit consists out of
  • M packages/fv/src/dialogs.inc


* more unicode fixes in the udialogs unit
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fixes in TInputLine.DataSize
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fixes in TInputLine.Valid
Commit consists out of
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/fvcommon.inc
  • M packages/fv/src/platform.inc


+ more unicode fixes in the dialogs unit
Commit consists out of
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/fvcommon.inc


* more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode bugfixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/platform.inc


+ unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


* use a TUnicodeStringCollection in TCluster
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fixes in TCluster.DrawMultiBox
Commit consists out of
  • M packages/fv/src/dialogs.inc


* more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fix
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fix
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ more unicode fixes
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ more unicode fixes
Commit consists out of
  • M packages/fv/src/validate.inc


* unicode fix
Commit consists out of
  • M packages/fv/src/validate.inc


+ more unicode fixes; the unicode units uapp, udialogs, umsgbox and uvalidate now compile
Commit consists out of
  • M packages/fv/src/validate.inc


+ test unicode app added
Commit consists out of
  • M .gitattributes
  • A packages/fv/examples/testuapp.lpi
  • A packages/fv/examples/testuapp.pas


+ unicode fix in TDesktop.InitBackground
Commit consists out of
  • M packages/fv/src/app.inc


+ initial attempt to switch the unix video unit to enhanced (unicode) mode. Only
UTF-8 is supported for now, and it's not yet implemented for Linux VCSA.
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ introduced StrWidth
Commit consists out of
  • M packages/fv/src/drivers.inc


+ implemented StrWidth and CStrLen, using the new extended grapheme cluster string enumerator
Commit consists out of
  • M packages/fv/examples/testuapp.lpi
  • M packages/fv/src/drivers.inc


+ use the enhanced grapheme cluster enumerator in UDrivers.MoveCStr and MoveStr
Commit consists out of
  • M packages/fv/src/drivers.inc


+ some fv unicode fixes for supporting complex (multi-char) enhanced grapheme clusters
Commit consists out of
  • M packages/fv/examples/testuapp.lpi
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/src/menus.inc
  • M packages/fv/src/views.inc
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/unix/video.pp


- disable optimizations to ease debugging
Commit consists out of
  • M packages/fv/examples/testuapp.lpi


* fixed reference count bug in the unicode version of TView.do_writeViewRec1
Commit consists out of
  • M packages/fv/src/views.inc


* updated unicode example string
Commit consists out of
  • M packages/fv/examples/testuapp.pas


- reduced the number of ifdefs in TStatusLine.DrawSelect
Commit consists out of
  • M packages/fv/src/menus.inc


- removed ifdefs from TStatusLine.HandleEvent
Commit consists out of
  • M packages/fv/src/menus.inc


- removed an ifdef from DisposeMenu
Commit consists out of
  • M packages/fv/src/menus.inc


* use SW_PString in TMenuItem to avoid an ifdef
Commit consists out of
  • M packages/fv/src/menus.inc


* use Sw_PString in TStatusItem to avoid an ifdef
Commit consists out of
  • M packages/fv/src/menus.inc


- removed one ifdef from TMenuView.Load
Commit consists out of
  • M packages/fv/src/menus.inc


- cleanup ifdefs from TMenuView.Execute
Commit consists out of
  • M packages/fv/src/menus.inc


- removed ifdefs from TMenuView.GetHelpCtx
Commit consists out of
  • M packages/fv/src/menus.inc


- cleaned up more ifdefs
Commit consists out of
  • M packages/fv/src/menus.inc


- cleaned more ifdefs
Commit consists out of
  • M packages/fv/src/menus.inc


- more ifdefs removed by the use of Sw_NewStr
Commit consists out of
  • M packages/fv/src/menus.inc


+ introduced video.StringDisplayWidth
Commit consists out of
  • M packages/rtl-console/fpmake.pp
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc
  • M packages/rtl-console/src/unix/video.pp


+ use Video.StringDisplayWidth in UDrivers.StrWidth
Commit consists out of
  • M packages/fv/src/drivers.inc


+ introduced Video.ExtendedGraphemeClusterDisplayWidth
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


+ use Video.ExtendedGraphemeClusterDisplayWidth in UDriver.CStrLen in order to support wide characters
Commit consists out of
  • M packages/fv/src/drivers.inc


- removed no longer used local variable
Commit consists out of
  • M packages/fv/src/drivers.inc


+ use Video.ExtendedGraphemeClusterDisplayWidth to support double width characters in MoveStr and MoveCStr
Commit consists out of
  • M packages/fv/src/drivers.inc


+ double width character support in the unix video unit
Commit consists out of
  • M packages/fv/examples/testuapp.pas
  • M packages/rtl-console/src/unix/video.pp


+ implement TView.TextWidth and TView.CTextWidth via StrWidth and CStrLen
Commit consists out of
  • M packages/fv/src/views.inc


+ unicode fixes in TMenuBox.Draw
Commit consists out of
  • M packages/fv/src/menus.inc


+ Unicode aware implementation of TStaticText.Draw
Commit consists out of
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/src/dialogs.inc


+ test dialog box
Commit consists out of
  • M packages/fv/examples/testuapp.pas


+ unicode fixes for the window title
Commit consists out of
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/src/drivers.inc
  • M packages/fv/src/views.inc


+ button test
Commit consists out of
  • M packages/fv/examples/testuapp.pas


* reset LastCharWasDoubleWidth in the beginning of every line
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ bug fix in the rendering of double width characters
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ another double width rendering bugfix
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ added scrollbar and listbox to the unicode example
Commit consists out of
  • M packages/fv/examples/testuapp.pas


+ use different languages in the list box
Commit consists out of
  • M packages/fv/examples/testuapp.pas


+ unicode fixes in TCluster.DrawMultiBox
Commit consists out of
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/src/dialogs.inc


+ added horizontal scrollbar to the demo
Commit consists out of
  • M packages/fv/examples/testuapp.pas


+ enable PInputLine in the unicode demo
Commit consists out of
  • M packages/fv/examples/testuapp.pas


+ TInputLine unicode keyboard text input fixed
Commit consists out of
  • M packages/fv/src/dialogs.inc


* fixed handling of non-BMP characters in Video.ExtendedGraphemeClusterDisplayWidth
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ wide and combining character support when determining the cursor position in TInputLine
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ unicode combining and wide character support in TInputLine.Draw
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ wide and combining character support in TInputLine.HandleEvent.MousePos. This
means cursor positioning and text selection with the mouse now works properly
with these special unicode characters
Commit consists out of
  • M packages/fv/src/dialogs.inc


* fixed double width character at the end of TInputLine covering the right
scroll arrow
Commit consists out of
  • M packages/fv/src/dialogs.inc


+ introduced UDrivers.EgcWidth
Commit consists out of
  • M packages/fv/src/drivers.inc


+ optimization: use EgcWidth instead of StrWidth wherever possible
Commit consists out of
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/views.inc


* fixed compilation of the video unit on Windows
Commit consists out of
  • M packages/rtl-console/src/win/video.pp


* convert unicode to the cp437 dingbats range (#0..#31,#127) in ExtendedGraphemeCluster2LegacyChar
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ use a table convert_lowascii_to_Unicode to convert unicode to cp437 lowascii and vice versa
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ also convert characters in the range #128..#255 in ExtendedGraphemeCluster2LegacyChar
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


- removed commented out code
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ handle enhanced video buffer resizing
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ added lpi file for compiling testuapp for windows
Commit consists out of
  • M .gitattributes
  • A packages/fv/examples/testuapp_windows.lpi


* timeddlg.pas renamed timeddlg.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/timeddlg.pas packages/fv/src/timeddlg.inc


+ added timeddlg.pas that includes timeddlg.inc
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • A packages/fv/src/timeddlg.pas


+ added unicode version of the timeddlg unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • M packages/fv/src/timeddlg.inc
  • A packages/fv/src/utimeddlg.pas


* inplong.pas renamed inplong.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/inplong.pas packages/fv/src/inplong.inc


+ added inplong.pas that includes inplong.inc
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • A packages/fv/src/inplong.pas


* fixed compilation under Linux
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ added unit uinplong - unicode version of inplong
Commit consists out of
  • M .gitattributes
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/fpmake.pp
  • M packages/fv/src/inplong.inc
  • A packages/fv/src/uinplong.pas


* tabs.pas renamed tabs.inc
Commit consists out of
  • M .gitattributes
  • R100 packages/fv/src/tabs.pas packages/fv/src/tabs.inc


+ added tabs.pas that includes tabs.inc
Commit consists out of
  • M .gitattributes
  • M packages/fv/fpmake.pp
  • A packages/fv/src/tabs.pas


+ added utabs - unicode version of the tabs unit
Commit consists out of
  • M .gitattributes
  • M packages/fv/examples/testuapp.pas
  • M packages/fv/fpmake.pp
  • M packages/fv/src/tabs.inc
  • A packages/fv/src/utabs.pas


* unicode conversion of the non-ASCII characters in statuses.pas
Commit consists out of
  • M packages/fv/src/statuses.pas


* replaced non-ascii characters to #XXX equivalents
Commit consists out of
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/inplong.inc
  • M packages/fv/src/menus.inc
  • M packages/fv/src/outline.inc


* converted non-ascii characters in stddlg.pas to unicode and #XXX equivalents in the non-unicode version
Commit consists out of
  • M packages/fv/src/stddlg.pas


* converted some non-ascii characters to unicode
* converted non-ascii characters to #XXX equivalents
Commit consists out of
  • M packages/fv/src/views.inc


* replaced high ascii characters with #XXX equivalents and provided unicode equivalents
Commit consists out of
  • M packages/fv/src/tabs.inc


+ added functions for getting/setting the current code page, when using the
legacy (non-Unicode) video buffer
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


+ added checks for certain code pages that should not be allowed to be set in Video.ActivateCodePage
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


* wire up the code page functions to call the driver functions in case of a legacy driver
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


* use the current legacy console code page in Enhanced2Legacy
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


* hide the (currently broken, to be fixed) unix internal/external code page
stuff to the implementation part of the unit
Commit consists out of
  • M packages/fv/src/views.inc
  • M packages/rtl-console/src/unix/video.pp


* converted internal_codepage and external_codepage to the TSystemCodePage type.
Removed the unused codepage enum constants and sets.
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* fixed bug in decide_codepages, which was checking the wrong variable for is_vga_code_page
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


- get rid of internal_codepage. Set CurrentLegacy2EnhancedTranslationCodePage instead.
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* converted tabs to spaces
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* converted comments to utf-8, so the file is readable in modern text editors
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* return RawByteString in the transform function result
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* use FPC's integrated codepage conversion for non-Unicode unix consoles
Commit consists out of
  • M .gitattributes
  • D packages/rtl-console/src/unix/convert.inc
  • M packages/rtl-console/src/unix/video.pp


* cleanup of garbage, resolves gitlab 0039487
Commit consists out of
  • M packages/fv/src/resource.pas


* rtl-console: fix ; in the previous commit
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ support conversion between legancy and enhanced console in UpdateScreenArea
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


* win16 compilation fix after merge of unicodekvm branch
Commit consists out of
  • M packages/rtl-console/src/win16/video.pp


AmigaOS4: fix compilation for double UTF8Encode in library unit and system
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


Amiga: Fix for unable to type in FV applications for Amiga-systems
Commit consists out of
  • M packages/fv/src/drivers.inc
  • M packages/rtl-console/src/amicommon/keyboard.pp


* return the proper shift state in the i8086-msdos keyboard unit GetKeyEvent and
PollKeyEvent (previously, it was truncated, due to the native int being 16-bit
on i8086)
Commit consists out of
  • M packages/rtl-console/src/msdos/keyboard.pp


* fixed bug, where left and right shift were swapped in the i8086-msdos
keyboard unit.
Commit consists out of
  • M packages/rtl-console/src/msdos/keyboard.pp


* fixed bug, where left and right shift were swapped in the i386-go32v2
keyboard unit as well.
Commit consists out of
  • M packages/rtl-console/src/go32v2/keyboard.pp


+ introduced the CurrentLegacy2EnhancedKeyEventTranslationCodePage private
variable in the keyboard unit. It is used for translating AsciiChar to
UnicodeChar in non-enhanced (i.e. non-unicode) consoles. It can be initialized
in SysInitKeyboard in non-unicode consoles, so they can return unicode
characters as well.
Commit consists out of
  • M packages/rtl-console/src/inc/keyboard.inc


+ support 83/84-key keyboards in the go32v2 keyboard unit
Commit consists out of
  • M packages/rtl-console/src/go32v2/keyboard.pp


+ get the current DOS code page in the go32v2 keyboard unit, so enhanced key
events Unicode characters are returned correctly (provided that the cpall and
fpwidestring unit are included as well)
Commit consists out of
  • M packages/rtl-console/src/go32v2/keyboard.pp


+ get the current code page in the msdos keyboard unit as well
Commit consists out of
  • M packages/rtl-console/src/msdos/keyboard.pp


+ support shift+pgup, shift+pgdn, ctrl+shift+pgup and ctrl+shift+pgdn in the
unix keyboard unit
Commit consists out of
  • M packages/rtl-console/src/unix/keyboard.pp


+ added properties TEnhancedVideoCell.ForegroundColor and .BackgroundColor,
which can store up to 256 colors
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


- removed spaces at end of line
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


- delete disabled code
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* attr2ansi changed to accept separate foreground and background color
parameters, instead of single attribute bytes. No functional changes.
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* use separate variables for tracking the foreground and background colors
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* copy operator of TEnhancedVideoCell now copies the 8-bit foreground and background colors
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


+ added 256 color support to the Unix console video unit
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp
  • A packages/rtl-console/tests/video3.pp


* fixed the 256-color support for konsole
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* changed the video unit initialization sequence, so that the startup cursor
position is preserved at exit (or when switching to the user screen in the
IDE), when running in xterm or compatible (gnome-terminal, konsole, etc.)
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ introduced TEnhancedVideoCell.EnhancedVideoAttributes, based on ECMA-48 and xterm
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc
  • M packages/rtl-console/src/inc/videoh.inc


+ implemented enhanced video attributes in the Unix video unit
+ added test for the enhanced video attributes
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp
  • A packages/rtl-console/tests/video4.pp


* convert advanced video attributes to legacy attributes (emulating bold, italic,
etc. using colors). Also, the blink attribute is converted correctly now.
Commit consists out of
  • M packages/rtl-console/src/inc/video.inc


Enabled mouse support for macOS and *BSD. Free Vision apps can now make use of the mouse for these O/Ss.
Commit consists out of
  • M packages/rtl-console/src/unix/mouse.pp


+ use the DEC special graphics character set to draw some non-ASCII characters
on Unix consoles that don't support UTF-8 (or don't have it enabled)
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


+ use some ASCII replacements for certain non-ASCII characters (used by Free
Vision) on Unix consoles that don't support UTF-8
Commit consists out of
  • M packages/rtl-console/src/unix/video.pp


* Dotted filenames for package fv
Commit consists out of
  • A packages/fv/namespaced/FreeVision.App.pas
  • A packages/fv/namespaced/FreeVision.Asciitab.pas
  • A packages/fv/namespaced/FreeVision.Buildfv.pas
  • A packages/fv/namespaced/FreeVision.Colorsel.pas
  • A packages/fv/namespaced/FreeVision.Colortxt.pas
  • A packages/fv/namespaced/FreeVision.Dialogs.pas
  • A packages/fv/namespaced/FreeVision.Drivers.pas
  • A packages/fv/namespaced/FreeVision.Editors.pas
  • A packages/fv/namespaced/FreeVision.Fvcommon.pas
  • A packages/fv/namespaced/FreeVision.Fvconsts.pas
  • A packages/fv/namespaced/FreeVision.Gadgets.pas
  • A packages/fv/namespaced/FreeVision.Histlist.pas
  • A packages/fv/namespaced/FreeVision.Inplong.pas
  • A packages/fv/namespaced/FreeVision.Memory.pas
  • A packages/fv/namespaced/FreeVision.Menus.pas
  • A packages/fv/namespaced/FreeVision.Msgbox.pas
  • A packages/fv/namespaced/FreeVision.Outline.pas
  • A packages/fv/namespaced/FreeVision.Resource.pas
  • A packages/fv/namespaced/FreeVision.Statuses.pas
  • A packages/fv/namespaced/FreeVision.Stddlg.pas
  • A packages/fv/namespaced/FreeVision.Sysmsg.pas
  • A packages/fv/namespaced/FreeVision.Tabs.pas
  • A packages/fv/namespaced/FreeVision.Time.pas
  • A packages/fv/namespaced/FreeVision.Timeddlg.pas
  • A packages/fv/namespaced/FreeVision.Uapp.pas
  • A packages/fv/namespaced/FreeVision.Udialogs.pas
  • A packages/fv/namespaced/FreeVision.Udrivers.pas
  • A packages/fv/namespaced/FreeVision.Ufvcommon.pas
  • A packages/fv/namespaced/FreeVision.Uhistlist.pas
  • A packages/fv/namespaced/FreeVision.Uinplong.pas
  • A packages/fv/namespaced/FreeVision.Umenus.pas
  • A packages/fv/namespaced/FreeVision.Umsgbox.pas
  • A packages/fv/namespaced/FreeVision.Uoutline.pas
  • A packages/fv/namespaced/FreeVision.Utabs.pas
  • A packages/fv/namespaced/FreeVision.Utimeddlg.pas
  • A packages/fv/namespaced/FreeVision.Uvalidate.pas
  • A packages/fv/namespaced/FreeVision.Uviews.pas
  • A packages/fv/namespaced/FreeVision.Validate.pas
  • A packages/fv/namespaced/FreeVision.Views.pas
  • A packages/fv/namespaces.lst
  • M packages/fv/src/amismsg.inc
  • M packages/fv/src/app.inc
  • M packages/fv/src/asciitab.pas
  • M packages/fv/src/buildfv.pas
  • M packages/fv/src/colortxt.pas
  • M packages/fv/src/dialogs.inc
  • M packages/fv/src/drivers.inc
  • M packages/fv/src/editors.pas
  • M packages/fv/src/fvcommon.inc
  • M packages/fv/src/fvconsts.pas
  • M packages/fv/src/gadgets.pas
  • M packages/fv/src/histlist.inc
  • M packages/fv/src/inplong.inc
  • M packages/fv/src/memory.pas
  • M packages/fv/src/menus.inc
  • M packages/fv/src/msgbox.inc
  • M packages/fv/src/outline.inc
  • M packages/fv/src/resource.pas
  • M packages/fv/src/statuses.pas
  • M packages/fv/src/stddlg.pas
  • M packages/fv/src/sysmsg.pas
  • M packages/fv/src/tabs.inc
  • M packages/fv/src/time.pas
  • M packages/fv/src/timeddlg.inc
  • M packages/fv/src/unixsmsg.inc
  • M packages/fv/src/validate.inc
  • M packages/fv/src/views.inc
  • M packages/fv/src/w32smsg.inc