📄 gdbm-1.8.3-src.diff
字号:
+GDBM_DLL_IMPEXP datum _gdbm_memory;
+GDBM_DLL_IMPEXP char *_gdbm_fetch_val;
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/gdbm-dll.h gdbm-1.8.3-src/gdbm-dll.h
--- gdbm-1.8.3-orig/gdbm-dll.h 1970-01-01 01:00:00.000000000 +0100
+++ gdbm-1.8.3-src/gdbm-dll.h 2004-12-10 21:12:29.437500000 +0100
@@ -0,0 +1,28 @@
+#ifndef _GDBMDLLIMPEXP_H_
+#define _GDBMDLLIMPEXP_H_ 1
+
+#ifndef __GNUC__
+# define __DLL_IMPORT__ __declspec(dllimport)
+# define __DLL_EXPORT__ __declspec(dllexport)
+#else
+# define __DLL_IMPORT__ __attribute__((dllimport)) extern
+# define __DLL_EXPORT__ __attribute__((dllexport)) extern
+#endif
+
+#if (defined __WIN32__) || (defined _WIN32)
+# ifdef BUILD_GDBM_DLL
+# define GDBM_DLL_IMPEXP __DLL_EXPORT__
+# elif defined(BUILD_GDBM_STATIC)
+# define GDBM_DLL_IMPEXP
+# elif defined (USE_GDBM_DLL)
+# define GDBM_DLL_IMPEXP __DLL_IMPORT__
+# elif defined (USE_GDBM_STATIC)
+# define GDBM_DLL_IMPEXP
+# else /* assume USE_GDBM_DLL */
+# define GDBM_DLL_IMPEXP __DLL_IMPORT__
+# endif
+#else /* __WIN32__ */
+# define GDBM_DLL_IMPEXP
+#endif
+
+#endif /* _GDBMDLLIMPEXP_H_ */
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/gdbm.proto gdbm-1.8.3-src/gdbm.proto
--- gdbm-1.8.3-orig/gdbm.proto 1999-05-19 02:16:06.000000000 +0200
+++ gdbm-1.8.3-src/gdbm.proto 2004-12-10 20:42:53.921875000 +0100
@@ -30,6 +30,8 @@
#ifndef _GDBM_H_
#define _GDBM_H_
+#include <gdbm-dll.h>
+
/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
can create the database. */
#define GDBM_READER 0 /* A reader. */
@@ -72,7 +74,7 @@ typedef struct {int dummy[10];} *GDBM_FI
#endif
/* External variable, the gdbm build release string. */
-extern char *gdbm_version;
+GDBM_DLL_IMPEXP char *gdbm_version;
/* GDBM C++ support */
@@ -82,18 +84,18 @@ extern "C" {
/* These are the routines! */
-extern GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)()));
-extern void gdbm_close __P((GDBM_FILE));
-extern int gdbm_store __P((GDBM_FILE, datum, datum, int));
-extern datum gdbm_fetch __P((GDBM_FILE, datum));
-extern int gdbm_delete __P((GDBM_FILE, datum));
-extern datum gdbm_firstkey __P((GDBM_FILE));
-extern datum gdbm_nextkey __P((GDBM_FILE, datum));
-extern int gdbm_reorganize __P((GDBM_FILE));
-extern void gdbm_sync __P((GDBM_FILE));
-extern int gdbm_exists __P((GDBM_FILE, datum));
-extern int gdbm_setopt __P((GDBM_FILE, int, int *, int));
-extern int gdbm_fdesc __P((GDBM_FILE));
+GDBM_DLL_IMPEXP GDBM_FILE gdbm_open __P((char *, int, int, int, void (*)()));
+GDBM_DLL_IMPEXP void gdbm_close __P((GDBM_FILE));
+GDBM_DLL_IMPEXP int gdbm_store __P((GDBM_FILE, datum, datum, int));
+GDBM_DLL_IMPEXP datum gdbm_fetch __P((GDBM_FILE, datum));
+GDBM_DLL_IMPEXP int gdbm_delete __P((GDBM_FILE, datum));
+GDBM_DLL_IMPEXP datum gdbm_firstkey __P((GDBM_FILE));
+GDBM_DLL_IMPEXP datum gdbm_nextkey __P((GDBM_FILE, datum));
+GDBM_DLL_IMPEXP int gdbm_reorganize __P((GDBM_FILE));
+GDBM_DLL_IMPEXP void gdbm_sync __P((GDBM_FILE));
+GDBM_DLL_IMPEXP int gdbm_exists __P((GDBM_FILE, datum));
+GDBM_DLL_IMPEXP int gdbm_setopt __P((GDBM_FILE, int, int *, int));
+GDBM_DLL_IMPEXP int gdbm_fdesc __P((GDBM_FILE));
#if defined(__cplusplus) || defined(c_plusplus)
}
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/gdbm.proto2 gdbm-1.8.3-src/gdbm.proto2
--- gdbm-1.8.3-orig/gdbm.proto2 1999-05-19 02:16:06.000000000 +0200
+++ gdbm-1.8.3-src/gdbm.proto2 2004-12-10 20:43:11.031250000 +0100
@@ -6,7 +6,7 @@
extern "C" {
#endif
-extern char *gdbm_strerror __P((gdbm_error));
+GDBM_DLL_IMPEXP char *gdbm_strerror __P((gdbm_error));
#if defined(__cplusplus) || defined(c_plusplus)
}
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/gdbmerrno.h gdbm-1.8.3-src/gdbmerrno.h
--- gdbm-1.8.3-orig/gdbmerrno.h 2000-01-19 08:09:52.000000000 +0100
+++ gdbm-1.8.3-src/gdbmerrno.h 2004-12-10 21:53:06.406250000 +0100
@@ -25,7 +25,7 @@
Bellingham, WA 98226
*************************************************************************/
-
+#include <gdbm-dll.h>
/* gdbm sets the following error codes. */
#define GDBM_NO_ERROR 0
@@ -52,4 +52,4 @@
typedef int gdbm_error; /* For compatibilities sake. */
-extern gdbm_error gdbm_errno;
+GDBM_DLL_IMPEXP gdbm_error gdbm_errno;
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/gdbmopen.c gdbm-1.8.3-src/gdbmopen.c
--- gdbm-1.8.3-orig/gdbmopen.c 2002-01-30 19:39:43.000000000 +0100
+++ gdbm-1.8.3-src/gdbmopen.c 2004-12-18 17:08:11.734375000 +0100
@@ -33,6 +33,12 @@
#include "gdbmdefs.h"
#include "gdbmerrno.h"
+#ifdef O_BINARY
+ int BINMODE = O_BINARY;
+#else
+ int BINMODE = 0;
+#endif
+
/* Initialize dbm system. FILE is a pointer to the file name. If the file
has a size of zero bytes, a file initialization procedure is performed,
setting up the initial structure in the file. BLOCK_SIZE is used during
@@ -126,20 +132,20 @@ gdbm_open (file, block_size, flags, mode
switch (flags & GDBM_OPENMASK)
{
case GDBM_READER:
- dbf->desc = open (dbf->name, O_RDONLY, 0);
+ dbf->desc = open (dbf->name, O_RDONLY | BINMODE, 0);
break;
case GDBM_WRITER:
- dbf->desc = open (dbf->name, O_RDWR, 0);
+ dbf->desc = open (dbf->name, O_RDWR | BINMODE, 0);
break;
case GDBM_NEWDB:
- dbf->desc = open (dbf->name, O_RDWR|O_CREAT, mode);
+ dbf->desc = open (dbf->name, O_RDWR|O_CREAT | BINMODE, mode);
need_trunc = TRUE;
break;
default:
- dbf->desc = open (dbf->name, O_RDWR|O_CREAT, mode);
+ dbf->desc = open (dbf->name, O_RDWR|O_CREAT | BINMODE, mode);
break;
}
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/ndbm.h gdbm-1.8.3-src/ndbm.h
--- gdbm-1.8.3-orig/ndbm.h 1999-05-19 02:16:07.000000000 +0200
+++ gdbm-1.8.3-src/ndbm.h 2004-12-10 20:23:46.812500000 +0100
@@ -30,6 +30,7 @@
#define DBM_INSERT 0
#define DBM_REPLACE 1
+#include <gdbm-dll.h>
/* The data and key structure. This structure is defined for compatibility. */
typedef struct {
@@ -44,28 +45,28 @@ typedef struct {int dummy[10];} DBM;
/* These are the routines (with some macros defining them!) */
-extern DBM *dbm_open ();
+GDBM_DLL_IMPEXP DBM *dbm_open ();
-extern void dbm_close ();
+GDBM_DLL_IMPEXP void dbm_close ();
-extern datum dbm_fetch ();
+GDBM_DLL_IMPEXP datum dbm_fetch ();
-extern int dbm_store ();
+GDBM_DLL_IMPEXP int dbm_store ();
-extern int dbm_delete ();
+GDBM_DLL_IMPEXP int dbm_delete ();
-extern int dbm_delete ();
+GDBM_DLL_IMPEXP int dbm_delete ();
-extern datum dbm_firstkey ();
+GDBM_DLL_IMPEXP datum dbm_firstkey ();
-extern datum dbm_nextkey ();
+GDBM_DLL_IMPEXP datum dbm_nextkey ();
#define dbm_error(dbf) (0)
#define dbm_clearerr(dbf)
-extern int dbm_dirfno ();
+GDBM_DLL_IMPEXP int dbm_dirfno ();
-extern int dbm_pagfno ();
+GDBM_DLL_IMPEXP int dbm_pagfno ();
-extern int dbm_rdonly ();
+GDBM_DLL_IMPEXP int dbm_rdonly ();
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/systems.h gdbm-1.8.3-src/systems.h
--- gdbm-1.8.3-orig/systems.h 2002-10-07 20:44:31.000000000 +0200
+++ gdbm-1.8.3-src/systems.h 2004-12-10 20:23:46.812500000 +0100
@@ -140,7 +140,11 @@
#if HAVE_FTRUNCATE
#define TRUNCATE(dbf) ftruncate (dbf->desc, 0)
#else
-#define TRUNCATE(dbf) close( open (dbf->name, O_RDWR|O_TRUNC, mode));
+#define TRUNCATE(dbf) close( open (dbf->name, O_RDWR|O_TRUNC
+#ifdef _WIN32
+ | O_BINARY
+#endif /* _WIN32 */
+ , mode));
#endif
#ifndef STDERR_FILENO
diff -ipuwrN -x '*.bak' -x '*.orig' -x '*.rej' -x '*.new' -x '*~' gdbm-1.8.3-orig/testgdbm.c gdbm-1.8.3-src/testgdbm.c
--- gdbm-1.8.3-orig/testgdbm.c 1999-05-19 02:16:07.000000000 +0200
+++ gdbm-1.8.3-src/testgdbm.c 2004-12-18 17:12:16.171875000 +0100
@@ -37,9 +37,11 @@
#include "getopt.h"
-extern const char * gdbm_version;
+#include <gdbm-dll.h>
-extern const char *gdbm_strerror __P((gdbm_error));
+GDBM_DLL_IMPEXP const char * gdbm_version;
+
+GDBM_DLL_IMPEXP const char *gdbm_strerror __P((gdbm_error));
gdbm_file_info *gdbm_file;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -