Ali Gholami Rudi wrote:
> Bram Moolenaar <[email protected]> wrote: > > Ali Gholami Rudi wrote: > > > It is probably possible to access the characters Vim prints on the > > > screen; I mean just after shaping (I have to look it up but of course > > > you know better). If so, it might be a good idea to use a sample > > > Arabic/Farsi text file. The output after shaping the letters can be > > > written to another file (as expected this file will contain Unicode > > > presentation forms of letters among other chars). It can be kept as > > > a reference to indicate the change in behaviour after changing > > > arabic.c. Does that look sane? > > > > Have a look at the files src/testdir/*.in. These are "what you type" > > scripts and the verified output can be the text after shaping. The > > trick will be to make some kind of table to avoid having to use all > > kinds of special characters that make the script unreadable (there are > > plenty of bad examples :-). Perhaps feedkeys() can be used. > > But I couldn't find a way to fetch what is actually printed on the > screen (like using mouse to copy what is shown on an x-terminal running > vim). The goal is to test the output of arabic_shape function and > AFAICT it is used when printing chars to the screen (both in screen.c > and ex_getln.c). > > I tried using ScreenLines and ScreenLinesUC in a C file but I couldn't > do it cleanly (I changed main.c to record these arrays) and the output > was not what I expected. So I think it is a better idea to call > arabic_shape() directly from a C program: > > 1. write a normal file containing some Arabic/Farsi text > 2. obtain the expected output by reading the file and calling > arabic_shape() on its chars and write it to another file (arabic.c > not changed yet) > 3. change arabic.c > 4. test to see if applying arabic_shape() on the test input yields the > expected output > > I don't expect such tests to be included in vim; they can be uploaded > somewhere to use it when changing arabic.c and considering the > frequency of changing arabic.c in the past, this approach doesn't seem > to be that bad. The arabic shaping also works when displaying a message on the command line. You could try using :redir to catch the output, something like: :redir >>test.out :call feedkeys("\<CR>") :call input(test_string) :redir END I haven't tried it! -- Bad fashion can discourage normal people from interacting with the engineer and talking about the cute things their children do. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ download, build and distribute -- http://www.A-A-P.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---
