mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 09:49:18 -04:00
Use file locking similar to vi.
PR: 15330 Submitted by: Oliver Breuninger <ob@seicom.net>
This commit is contained in:
parent
aaba1609ea
commit
ac538b4f47
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=24032
9 changed files with 297 additions and 231 deletions
|
@ -1,9 +1,6 @@
|
||||||
*** main.c.old Sun Jan 22 03:21:08 1995
|
--- main.c.orig Sun Jan 22 01:21:08 1995
|
||||||
--- main.c Tue Oct 15 16:54:32 1996
|
+++ main.c Tue Dec 7 13:57:42 1999
|
||||||
***************
|
@@ -19,4 +19,8 @@
|
||||||
*** 18,23 ****
|
|
||||||
--- 18,27 ----
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
|
@ -12,14 +9,9 @@
|
||||||
+#endif
|
+#endif
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "w.h"
|
#include "w.h"
|
||||||
#include "tty.h"
|
@@ -188,4 +192,18 @@
|
||||||
***************
|
|
||||||
*** 186,191 ****
|
|
||||||
--- 190,209 ----
|
|
||||||
#else
|
|
||||||
run=namprt(argv[0]);
|
|
||||||
#endif
|
#endif
|
||||||
+
|
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
+ setlocale(LC_ALL, "");
|
+ setlocale(LC_ALL, "");
|
||||||
+ for(c=0;c<256;c++)
|
+ for(c=0;c<256;c++)
|
||||||
|
@ -33,31 +25,13 @@
|
||||||
+ xlatc[c]=c;
|
+ xlatc[c]=c;
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
||||||
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
||||||
*** scrn.h.old Thu Oct 6 10:09:04 1994
|
@@ -366,5 +384,5 @@
|
||||||
--- scrn.h Tue Oct 15 16:42:29 1996
|
if(help) helpon(maint);
|
||||||
***************
|
if(!nonotice)
|
||||||
*** 254,263 ****
|
- msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8 ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
|
+ msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8l ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
#define xlat(a,c) \
|
edloop(0);
|
||||||
( \
|
vclose(vmem);
|
||||||
! (dspasis && ((unsigned)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned)(c)]), ((c)=xlatc[(unsigned)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
--- 254,263 ----
|
|
||||||
|
|
||||||
#define xlat(a,c) \
|
|
||||||
( \
|
|
||||||
! (dspasis && ((unsigned char)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned char)(c)]), ((c)=xlatc[(unsigned char)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
|
|
|
@ -1,18 +1,58 @@
|
||||||
--- b.c Fri Jan 20 03:38:25 1995
|
--- b.c.orig Fri Jan 20 09:38:25 1995
|
||||||
+++ b.c.new Fri Jul 23 03:36:10 1999
|
+++ b.c Tue Dec 7 13:35:11 1999
|
||||||
@@ -21,6 +21,7 @@
|
@@ -22,4 +22,7 @@
|
||||||
#include <pwd.h>
|
|
||||||
#endif
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
+#include <sys/file.h>
|
||||||
+#include <sys/types.h>
|
+#include <sys/types.h>
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "blocks.h"
|
@@ -202,4 +205,5 @@
|
||||||
@@ -1990,6 +1991,7 @@
|
else b->o=pdefault;
|
||||||
|
mset(b->marks,0,sizeof(b->marks));
|
||||||
|
+ b->filehandle = -1; /* initialize filehandle &&& ob */
|
||||||
|
b->rdonly=0;
|
||||||
|
b->orphan=0;
|
||||||
|
@@ -256,4 +260,8 @@
|
||||||
|
if(b && !--b->count)
|
||||||
{
|
{
|
||||||
long tim=time(0);
|
+ if (b->filehandle != -1) {
|
||||||
B *b;
|
+ /* close filehandle, free lock &&& ob */
|
||||||
+ mode_t mask=umask(077); /* no access to DEADJOE for others */
|
+ close (b->filehandle);
|
||||||
FILE *f=fopen("DEADJOE","a");
|
+ }
|
||||||
fprintf(f,"\n*** Modified files in JOE when it aborted on %s",ctime(&tim));
|
if(b->changed) abrerr(b->name);
|
||||||
if(sig) fprintf(f,"*** JOE was aborted by signal %d\n",sig);
|
if(b==errbuf) errbuf=0;
|
||||||
|
@@ -1672,4 +1680,5 @@
|
||||||
|
long skip,amnt;
|
||||||
|
char *n;
|
||||||
|
+ struct stat sb;
|
||||||
|
int nowrite=0;
|
||||||
|
|
||||||
|
@@ -1705,4 +1714,26 @@
|
||||||
|
fi=fopen(n,"r");
|
||||||
|
if(!fi) nowrite=0;
|
||||||
|
+/*printf ("nowrite open=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* check file mod, if no write flags set,
|
||||||
|
+ joe in read only mode. &&& ob */
|
||||||
|
+
|
||||||
|
+ if (!nowrite) {
|
||||||
|
+ nowrite = (!stat (n, &sb)) && (!(sb.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite stat=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* lock the file if writable, or go into read only mode if
|
||||||
|
+ already locked, */
|
||||||
|
+
|
||||||
|
+ if ((fi) && (!nowrite)) {
|
||||||
|
+ b->filehandle = dup (fileno (fi));
|
||||||
|
+ nowrite = (flock (b->filehandle, LOCK_EX | LOCK_NB));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite flock=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+/*nowrite = 1; */ /* for test purpose */
|
||||||
|
+/*printf ("nowrite=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
}
|
||||||
|
joesep(n);
|
||||||
|
|
8
editors/joe-devel/files/patch-ae
Normal file
8
editors/joe-devel/files/patch-ae
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
--- b.h.orig Wed Dec 21 13:04:46 1994
|
||||||
|
+++ b.h Tue Dec 7 13:35:11 1999
|
||||||
|
@@ -61,4 +61,5 @@
|
||||||
|
int internal; /* Set for internal buffers */
|
||||||
|
int er; /* Error code when file was loaded */
|
||||||
|
+ int filehandle; /* File handle for locking */
|
||||||
|
};
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
*** main.c.old Sun Jan 22 03:21:08 1995
|
--- main.c.orig Sun Jan 22 01:21:08 1995
|
||||||
--- main.c Tue Oct 15 16:54:32 1996
|
+++ main.c Tue Dec 7 13:57:42 1999
|
||||||
***************
|
@@ -19,4 +19,8 @@
|
||||||
*** 18,23 ****
|
|
||||||
--- 18,27 ----
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
|
@ -12,14 +9,9 @@
|
||||||
+#endif
|
+#endif
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "w.h"
|
#include "w.h"
|
||||||
#include "tty.h"
|
@@ -188,4 +192,18 @@
|
||||||
***************
|
|
||||||
*** 186,191 ****
|
|
||||||
--- 190,209 ----
|
|
||||||
#else
|
|
||||||
run=namprt(argv[0]);
|
|
||||||
#endif
|
#endif
|
||||||
+
|
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
+ setlocale(LC_ALL, "");
|
+ setlocale(LC_ALL, "");
|
||||||
+ for(c=0;c<256;c++)
|
+ for(c=0;c<256;c++)
|
||||||
|
@ -33,31 +25,13 @@
|
||||||
+ xlatc[c]=c;
|
+ xlatc[c]=c;
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
||||||
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
||||||
*** scrn.h.old Thu Oct 6 10:09:04 1994
|
@@ -366,5 +384,5 @@
|
||||||
--- scrn.h Tue Oct 15 16:42:29 1996
|
if(help) helpon(maint);
|
||||||
***************
|
if(!nonotice)
|
||||||
*** 254,263 ****
|
- msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8 ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
|
+ msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8l ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
#define xlat(a,c) \
|
edloop(0);
|
||||||
( \
|
vclose(vmem);
|
||||||
! (dspasis && ((unsigned)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned)(c)]), ((c)=xlatc[(unsigned)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
--- 254,263 ----
|
|
||||||
|
|
||||||
#define xlat(a,c) \
|
|
||||||
( \
|
|
||||||
! (dspasis && ((unsigned char)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned char)(c)]), ((c)=xlatc[(unsigned char)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
|
|
|
@ -1,18 +1,58 @@
|
||||||
--- b.c Fri Jan 20 03:38:25 1995
|
--- b.c.orig Fri Jan 20 09:38:25 1995
|
||||||
+++ b.c.new Fri Jul 23 03:36:10 1999
|
+++ b.c Tue Dec 7 13:35:11 1999
|
||||||
@@ -21,6 +21,7 @@
|
@@ -22,4 +22,7 @@
|
||||||
#include <pwd.h>
|
|
||||||
#endif
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
+#include <sys/file.h>
|
||||||
+#include <sys/types.h>
|
+#include <sys/types.h>
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "blocks.h"
|
@@ -202,4 +205,5 @@
|
||||||
@@ -1990,6 +1991,7 @@
|
else b->o=pdefault;
|
||||||
|
mset(b->marks,0,sizeof(b->marks));
|
||||||
|
+ b->filehandle = -1; /* initialize filehandle &&& ob */
|
||||||
|
b->rdonly=0;
|
||||||
|
b->orphan=0;
|
||||||
|
@@ -256,4 +260,8 @@
|
||||||
|
if(b && !--b->count)
|
||||||
{
|
{
|
||||||
long tim=time(0);
|
+ if (b->filehandle != -1) {
|
||||||
B *b;
|
+ /* close filehandle, free lock &&& ob */
|
||||||
+ mode_t mask=umask(077); /* no access to DEADJOE for others */
|
+ close (b->filehandle);
|
||||||
FILE *f=fopen("DEADJOE","a");
|
+ }
|
||||||
fprintf(f,"\n*** Modified files in JOE when it aborted on %s",ctime(&tim));
|
if(b->changed) abrerr(b->name);
|
||||||
if(sig) fprintf(f,"*** JOE was aborted by signal %d\n",sig);
|
if(b==errbuf) errbuf=0;
|
||||||
|
@@ -1672,4 +1680,5 @@
|
||||||
|
long skip,amnt;
|
||||||
|
char *n;
|
||||||
|
+ struct stat sb;
|
||||||
|
int nowrite=0;
|
||||||
|
|
||||||
|
@@ -1705,4 +1714,26 @@
|
||||||
|
fi=fopen(n,"r");
|
||||||
|
if(!fi) nowrite=0;
|
||||||
|
+/*printf ("nowrite open=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* check file mod, if no write flags set,
|
||||||
|
+ joe in read only mode. &&& ob */
|
||||||
|
+
|
||||||
|
+ if (!nowrite) {
|
||||||
|
+ nowrite = (!stat (n, &sb)) && (!(sb.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite stat=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* lock the file if writable, or go into read only mode if
|
||||||
|
+ already locked, */
|
||||||
|
+
|
||||||
|
+ if ((fi) && (!nowrite)) {
|
||||||
|
+ b->filehandle = dup (fileno (fi));
|
||||||
|
+ nowrite = (flock (b->filehandle, LOCK_EX | LOCK_NB));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite flock=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+/*nowrite = 1; */ /* for test purpose */
|
||||||
|
+/*printf ("nowrite=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
}
|
||||||
|
joesep(n);
|
||||||
|
|
8
editors/joe/files/patch-ae
Normal file
8
editors/joe/files/patch-ae
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
--- b.h.orig Wed Dec 21 13:04:46 1994
|
||||||
|
+++ b.h Tue Dec 7 13:35:11 1999
|
||||||
|
@@ -61,4 +61,5 @@
|
||||||
|
int internal; /* Set for internal buffers */
|
||||||
|
int er; /* Error code when file was loaded */
|
||||||
|
+ int filehandle; /* File handle for locking */
|
||||||
|
};
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
*** main.c.old Sun Jan 22 03:21:08 1995
|
--- main.c.orig Sun Jan 22 01:21:08 1995
|
||||||
--- main.c Tue Oct 15 16:54:32 1996
|
+++ main.c Tue Dec 7 13:57:42 1999
|
||||||
***************
|
@@ -19,4 +19,8 @@
|
||||||
*** 18,23 ****
|
|
||||||
--- 18,27 ----
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
|
@ -12,14 +9,9 @@
|
||||||
+#endif
|
+#endif
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "w.h"
|
#include "w.h"
|
||||||
#include "tty.h"
|
@@ -188,4 +192,18 @@
|
||||||
***************
|
|
||||||
*** 186,191 ****
|
|
||||||
--- 190,209 ----
|
|
||||||
#else
|
|
||||||
run=namprt(argv[0]);
|
|
||||||
#endif
|
#endif
|
||||||
+
|
|
||||||
+#ifdef __FreeBSD__
|
+#ifdef __FreeBSD__
|
||||||
+ setlocale(LC_ALL, "");
|
+ setlocale(LC_ALL, "");
|
||||||
+ for(c=0;c<256;c++)
|
+ for(c=0;c<256;c++)
|
||||||
|
@ -33,31 +25,13 @@
|
||||||
+ xlatc[c]=c;
|
+ xlatc[c]=c;
|
||||||
+ }
|
+ }
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
if(s=getenv("LINES")) sscanf(s,"%d",&lines);
|
||||||
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
if(s=getenv("COLUMNS")) sscanf(s,"%d",&columns);
|
||||||
*** scrn.h.old Thu Oct 6 10:09:04 1994
|
@@ -366,5 +384,5 @@
|
||||||
--- scrn.h Tue Oct 15 16:42:29 1996
|
if(help) helpon(maint);
|
||||||
***************
|
if(!nonotice)
|
||||||
*** 254,263 ****
|
- msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8 ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
|
+ msgnw(lastw(maint)->object,"\\i** Joe's Own Editor v2.8l ** Copyright (C) 1995 Joseph H. Allen **\\i");
|
||||||
#define xlat(a,c) \
|
edloop(0);
|
||||||
( \
|
vclose(vmem);
|
||||||
! (dspasis && ((unsigned)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned)(c)]), ((c)=xlatc[(unsigned)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
--- 254,263 ----
|
|
||||||
|
|
||||||
#define xlat(a,c) \
|
|
||||||
( \
|
|
||||||
! (dspasis && ((unsigned char)(c)>=128)) ? \
|
|
||||||
((a)=0) \
|
|
||||||
: \
|
|
||||||
! (((a)=xlata[(unsigned char)(c)]), ((c)=xlatc[(unsigned char)(c)])) \
|
|
||||||
)
|
|
||||||
|
|
||||||
/* int eraeol(SCRN *t,int x,int y);
|
|
||||||
|
|
|
@ -1,18 +1,58 @@
|
||||||
--- b.c Fri Jan 20 03:38:25 1995
|
--- b.c.orig Fri Jan 20 09:38:25 1995
|
||||||
+++ b.c.new Fri Jul 23 03:36:10 1999
|
+++ b.c Tue Dec 7 13:35:11 1999
|
||||||
@@ -21,6 +21,7 @@
|
@@ -22,4 +22,7 @@
|
||||||
#include <pwd.h>
|
|
||||||
#endif
|
#endif
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
+#include <sys/file.h>
|
||||||
+#include <sys/types.h>
|
+#include <sys/types.h>
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "blocks.h"
|
@@ -202,4 +205,5 @@
|
||||||
@@ -1990,6 +1991,7 @@
|
else b->o=pdefault;
|
||||||
|
mset(b->marks,0,sizeof(b->marks));
|
||||||
|
+ b->filehandle = -1; /* initialize filehandle &&& ob */
|
||||||
|
b->rdonly=0;
|
||||||
|
b->orphan=0;
|
||||||
|
@@ -256,4 +260,8 @@
|
||||||
|
if(b && !--b->count)
|
||||||
{
|
{
|
||||||
long tim=time(0);
|
+ if (b->filehandle != -1) {
|
||||||
B *b;
|
+ /* close filehandle, free lock &&& ob */
|
||||||
+ mode_t mask=umask(077); /* no access to DEADJOE for others */
|
+ close (b->filehandle);
|
||||||
FILE *f=fopen("DEADJOE","a");
|
+ }
|
||||||
fprintf(f,"\n*** Modified files in JOE when it aborted on %s",ctime(&tim));
|
if(b->changed) abrerr(b->name);
|
||||||
if(sig) fprintf(f,"*** JOE was aborted by signal %d\n",sig);
|
if(b==errbuf) errbuf=0;
|
||||||
|
@@ -1672,4 +1680,5 @@
|
||||||
|
long skip,amnt;
|
||||||
|
char *n;
|
||||||
|
+ struct stat sb;
|
||||||
|
int nowrite=0;
|
||||||
|
|
||||||
|
@@ -1705,4 +1714,26 @@
|
||||||
|
fi=fopen(n,"r");
|
||||||
|
if(!fi) nowrite=0;
|
||||||
|
+/*printf ("nowrite open=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* check file mod, if no write flags set,
|
||||||
|
+ joe in read only mode. &&& ob */
|
||||||
|
+
|
||||||
|
+ if (!nowrite) {
|
||||||
|
+ nowrite = (!stat (n, &sb)) && (!(sb.st_mode & (S_IWUSR | S_IWGRP | S_IWOTH)));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite stat=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+ /* lock the file if writable, or go into read only mode if
|
||||||
|
+ already locked, */
|
||||||
|
+
|
||||||
|
+ if ((fi) && (!nowrite)) {
|
||||||
|
+ b->filehandle = dup (fileno (fi));
|
||||||
|
+ nowrite = (flock (b->filehandle, LOCK_EX | LOCK_NB));
|
||||||
|
+ }
|
||||||
|
+/*printf ("nowrite flock=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
+/*nowrite = 1; */ /* for test purpose */
|
||||||
|
+/*printf ("nowrite=%i\n", nowrite); */
|
||||||
|
+
|
||||||
|
}
|
||||||
|
joesep(n);
|
||||||
|
|
8
editors/joe2/files/patch-ae
Normal file
8
editors/joe2/files/patch-ae
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
--- b.h.orig Wed Dec 21 13:04:46 1994
|
||||||
|
+++ b.h Tue Dec 7 13:35:11 1999
|
||||||
|
@@ -61,4 +61,5 @@
|
||||||
|
int internal; /* Set for internal buffers */
|
||||||
|
int er; /* Error code when file was loaded */
|
||||||
|
+ int filehandle; /* File handle for locking */
|
||||||
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue