Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ukma!rutgers!att!cbnewsc!gregg From: gregg@cbnewsc.ATT.COM (gregg.g.wonderly) Newsgroups: comp.editors Subject: Re: Thanks for Vi under VMS pointers Message-ID: <3846@cbnewsc.ATT.COM> Date: 12 Oct 89 18:44:07 GMT References: <862@swbatl.UUCP> Organization: AT&T Bell Laboratories Lines: 51 From article <862@swbatl.UUCP>, by uucibg@swbatl.UUCP (3929): > One note > though: it requires VMS 5.0 or higher according to one respondent (sp?). > Actually, they said there were some patches that would make it work on some > earlier versions but it was somewhat unclear how solid the patches were or > which versions of VMS they addressed (*no* criticism meant: just trying to > pass on the info. And please post a follow-up if I got that wrong). Without a lot of gory details, these are the details. As of VMS 5.0, several prevalent bugs in the TPU SEARCH() built in were fixed. This allowed me to remove some kludges (work arounds if you don't like that word) from the code, thus making it possible to have more complicated REs given the limitation on the length of a string that COMPILE () will accept. The second change was that the variable returned from keyboard reads changed from type INTEGER to type KEYWORD. They allowed old compatibility by allowing INT(key_value) to return an INTEGER representation. The other change that affected TPUVI was the change in the behavior of SEARCH (pattern, [NO]EXACT, REVERSE). Previously, it moved one character to the LEFT before starting the search. The FORWARD counter part did not. Thus places were statements of the form IF (CURRENT_DIRECTION = FORWARD) THEN MOVE_HORIZONTAL (1); ENDIF; had to be changed to IF (CURRENT_DIRECTION = FORWARD) THEN MOVE_HORIZONTAL (1); ELSE MOVE_HORIZONTAL (-1); ENDIF; Those are the big changes which make it impossible to get reasonable behavior from Version 2 of TPUVI under VMS 4.x (the KEY_NAME problems will keep it from processing any keystrokes). If you change these things back, it will mostly work. But again, the instability of the SEARCH() routine will require many little tweaks which I do not remember anymore (okay, the pattern ANY("abcd") in 5.x must be written as (""|ANY("abcd")) in 4.x to match zero characters i.e. [a-d]*, other problems require "''&" to be prepended to ever pattern to get the "incremental" search mode turned on, under 5.x this is not necessary). There are so many other little problems here and there that I just would rather not support (as if I am anyway) both versions. I know that that is not what those of you still using VMS 4.x want to hear, but I don't have the resources to provide otherwise. -- ----- gregg.g.wonderly@att.com (AT&T bell laboratories)