[Info-vax] Emacs 21.2, was Re: PC/VT Keyboarrd Mapping

John Reagan xyzzy1959 at gmail.com
Wed Jun 29 13:04:40 EDT 2016


On Tuesday, June 28, 2016 at 5:13:36 PM UTC-4, hb wrote:
> On 06/25/2016 10:02 PM, John Reagan wrote:
> > Absolutely.  I use a standard PC keyboard and use the keypad with
> > LSE, DTM, and Notes.  It all works just fine.  I have an LSE init
> > file that makes F9-F12 into the "DO" key.  I tend to use Emacs all
> > the time, but Emacs seems to have issues when I have SET
> > PROC/PARSE=EXTENDED enabled.  It also has issues with using angle
> > braces instead of square braces in filespecs.  Those are the times
> > I'll just hop into LSE.
> 
> It looks like the angel bracket problem shows/showed with concealed
> rooted logical names and the current default directory, when the latter
> is specified with square brackets - and vice versa.
> 
> What seems to work without any problem:
>  Process set to extended parsing
>  Current directory on an ODS-5 disk: [] style
>  Copy of the emacs dump file saved as Emacs-21_2.Dump;1 in the current
>    directory
>  File names in lowercase
> 
> For example
>  $ mcr bld_root:[local.bin]emacs-21_2 -map <>emacs-21_2.dump
> sys$disk:<>lowercase.txt
> 
> What didn't work was editing a file specified like
>   <>lowercase.txt
> or
>   root:<whatever>lowercase.txt
> with root defined /translation=(concealed,terminal)
> 
> No surprise, using square brackets in both error cases worked as expected.
> 
> I changed the code and fixed "something" (FILEIO.C) and I hope I didn't
> break something else. The changes are independent of the platforms
> VAX/Alpha/I64. Diffs/patches are appended. Whether the change can/needs
> to be applied to 19.28 (which I assume is the other version), I don't know.
> 
> Emacs was build and runs on Alpha V8.3, with a "recent" CRTL as well as
> recent include files and HP C V7.3-010.
> 
> To build in this environment (and likely on recent I64 versions) you
> need to make the call to access() consistent, either always use (the
> #defined) sys_access() and maybe prefix that with __LONG_GID_ or use
> access() from decc$shr. I dared to do the first one (OK, looks like a
> hack, because including unistd.h in VMSFNS.C creates more compile time
> errors/warnings than I wanted to handle). Otherwise my friend the LINKER
> will complain about an undefined symbol SYS_ACCESS in VMSFNS.OBJ - and
> the LINKER is always right :-)
> 
> On not so recent versions, especially of unistd.h, there is no such
> build problem - and sys_access, more or less a CRTL-workaround-code, is
> used.
> 
> When using access() from DECC$SHR, I experienced write access problems
> for files which were not write protected. I didn't spend the time to
> investigate. And no, I don't see any DECC$ feature logicals being defined.
> 
> PATCHES:
> 
> $ diff/slp [-.emacs212_3.src]fileio.c;-1 ;
> $ diff/slp [-.emacs212_3.src]vmsfns.c;-1 ;
> $ ty *.dif
> 
> BLD_ROOT:[EMACS.BUILD]FILEIO.DIF;1
> 
> - 1064
>   int fbrack = 0;
> - 1232
>               fbrack = 0;
> - 1258, 1263
>             {
>               lbrack++, brack = 0;
>               if (fbrack==0)
>                 fbrack = p[0];
>               else
>                 p[0] = fbrack;
>             }
>           /* count close brackets, set close bracket pointer */
>           if (p[0] == ']' || p[0] == '>')
>             {
>               rbrack++, brack = p;
>               p[0] = fbrack + 2;
>             }
>           /* detect ][ or >< */
>           if ((p[0] == ']' && p[1] == '[') || (p[0] == '>' && p[1] == '<'))
> - 1303
>                   p = tmp+(colon-nm)+8;
> /
> 
> BLD_ROOT:[EMACS.BUILD]VMSFNS.DIF;1
> 
> -   27
> #if __USE_LONG_GID_T
> #   pragma __extern_prefix __save
> #   pragma __extern_prefix "__long_gid_"
> #endif
> 
> int  access    (const char *__file_spec, int __mode);
> 
> #if __USE_LONG_GID_T
> #   pragma __extern_prefix __restore
> #endif
> /
> $

I'll look into using that patch in the next week or so when Mike Z returns from vacation (he's the one who did our local build).



More information about the Info-vax mailing list