--- sdbm.c.orig Fri Jan 22 09:40:54 1999
+++ sdbm.c Fri Jan 22 10:08:49 1999
@@ -270,2 +270,6 @@
char twin[PBLKSIZ];
+#if defined(DOSISH) || defined(WIN32)
+ char zer[PBLKSIZ];
+ long oldtail;
+#endif
char *pag = db->pagbuf;
@@ -292,2 +296,19 @@
*/
+
+#if defined(DOSISH) || defined(WIN32)
+ /*
+ * Fill hole with 0 if made it.
+ * (hole is NOT read as 0)
+ */
+ oldtail = lseek(db->pagf, 0L, SEEK_END);
+ memset(zer, 0, PBLKSIZ);
+ while (OFF_PAG(newp) > oldtail) {
+ if (lseek(db->pagf, 0L, SEEK_END) < 0 ||
+ write(db->pagf, zer, PBLKSIZ) < 0) {
+
+ return 0;
+ }
+ oldtail += PBLKSIZ;
+ }
+#endif
if (hash & (db->hmask + 1)) {
● リンクはご自由にどうぞ。問合わせ等の必要はありません。
Last modified: Sun Nov 11 2001
Copyright (C) 2001 SUZUKI Norio, 鈴木紀夫