1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
diff -up nvi-1.81.6/common/db.h patched-nvi-1.81.6/common/db.h
--- nvi-1.81.6/common/db.h 2007-11-18 11:41:42.000000000 -0500
+++ patched-nvi-1.81.6/common/db.h 2014-10-04 08:53:11.000000000 -0400
@@ -16,7 +16,10 @@
(env)->remove(env, path, NULL, flags)
#endif
-#if DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1
+# if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 4) || DB_VERSION_MAJOR > 4
+#define db_open(db,file,type,flags,mode) \
+ (db)->open(db, NULL, file, NULL, type, flags | DB_CREATE, mode)
+#elif DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
#define db_open(db,file,type,flags,mode) \
(db)->open(db, NULL, file, NULL, type, flags, mode)
#else
diff -up nvi-1.81.6/common/msg.c patched-nvi-1.81.6/common/msg.c
--- nvi-1.81.6/common/msg.c 2007-11-18 11:41:42.000000000 -0500
+++ patched-nvi-1.81.6/common/msg.c 2014-10-04 08:55:13.000000000 -0400
@@ -724,7 +724,8 @@ msg_open(SCR *sp, char *file)
p = buf;
} else
p = file;
- if ((sp->db_error = db_create(&db, 0, 0)) != 0 ||
+ if (access(p, R_OK) != 0 ||
+ (sp->db_error = db_create(&db, 0, 0)) != 0 ||
(sp->db_error = db->set_re_source(db, p)) != 0 ||
(sp->db_error = db_open(db, NULL, DB_RECNO, 0, 0)) != 0) {
if (first) {
|