2 Subject: Patch 6.2.161 (extra)
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
11 Problem: VMS: Missing header file. Reading input busy loops.
12 Solution: Include termdef.h. Avoid the use of a wait function in
13 vms_read(). (Frank Ries)
14 Files: src/os_unix.h, src/os_vms.c
17 *** ../vim-6.2.160/src/os_unix.h Mon Jan 20 21:14:13 2003
18 --- src/os_unix.h Mon Nov 10 10:53:44 2003
29 *** ../vim-6.2.160/src/os_vms.c Wed Oct 29 14:40:27 2003
30 --- src/os_vms.c Tue Dec 23 14:30:31 2003
33 static short iochan; /* TTY I/O channel */
34 static short iosb[4]; /* IO status block */
36 ! int vms_match_num = 0;
37 ! int vms_match_alloced = 0;
38 ! int vms_match_free = 0;
39 ! char_u **vms_fmatch = NULL;
40 static char *Fspec_Rms; /* rms file spec, passed implicitly between routines */
44 static short iochan; /* TTY I/O channel */
45 static short iosb[4]; /* IO status block */
47 ! static int vms_match_num = 0;
48 ! static int vms_match_free = 0;
49 ! static char_u **vms_fmatch = NULL;
50 static char *Fspec_Rms; /* rms file spec, passed implicitly between routines */
73 vms_read(char *inbuf, size_t nbytes)
75 ! int status, function, len;
79 /* whatever happened earlier we need an iochan here */
81 ! tt_mode = get_tty();
83 ! function = (IO$_READLBLK | IO$M_NOECHO | IO$M_TIMED | IO$M_ESCAPE);
84 memset(inbuf, 0, nbytes);
88 ! status = sys$qiow(0,iochan,function,&iosb,0,0,inbuf,nbytes-1,0,0,0,0);
98 vms_read(char *inbuf, size_t nbytes)
100 ! int status, function, len;
103 ! static long trm_mask[8] = {-1, -1, -1, -1, -1, -1, -1, -1};
105 /* whatever happened earlier we need an iochan here */
107 ! tt_mode = get_tty();
109 ! vul_item(&itmlst[0], 0, TRM$_MODIFIERS,
110 ! (char *)(TRM$M_TM_ESCAPE | TRM$M_TM_NOECHO | TRM$M_TM_NOEDIT |
111 ! TRM$M_TM_NOFILTR | TRM$M_TM_NORECALL | TRM$M_TM_TRMNOECHO), 0);
112 ! vul_item(&itmlst[1], sizeof(trm_mask), TRM$_TERM, (char *)&trm_mask, 0);
114 ! function = (IO$_READLBLK | IO$M_EXTEND);
115 memset(inbuf, 0, nbytes);
119 ! status = sys$qiow(0, iochan, function, &iosb, 0, 0, inbuf, nbytes - 1,
120 ! 0, 0, &itmlst, sizeof(itmlst));
129 * Returns: 1 - continue finding matches
130 * 0 - stop trying to find any further mathces
133 vms_wproc(char *name, int val)
138 if (val != DECC$K_FILE) /* Directories and foreing non VMS files are not counting */
141 * Returns: 1 - continue finding matches
142 * 0 - stop trying to find any further mathces
145 vms_wproc(char *name, int val)
149 + static int vms_match_alloced = 0;
151 if (val != DECC$K_FILE) /* Directories and foreing non VMS files are not counting */
153 *** ../vim-6.2.160/src/version.c Mon Dec 29 20:32:43 2003
154 --- src/version.c Mon Dec 29 20:34:56 2003
158 { /* Add new patch number below this line */
164 From "know your smileys":
165 [:-) Frankenstein's monster
167 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
168 /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
169 \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
170 \\\ Help AIDS victims, buy here: http://ICCF-Holland.org/click1.html ///