From c494f0d746aa309e3340538d4a72f33cf6cb1c1e Mon Sep 17 00:00:00 2001 From: Evan Miller Date: Sun, 4 Apr 2021 22:07:31 -0400 Subject: [PATCH] SQL: Allow spaces in DB names (remove wordexp.h) Fixes #292 --- configure.ac | 1 - src/sql/mdbsql.c | 44 +++----------------------------------------- 2 files changed, 3 insertions(+), 42 deletions(-) diff --git a/configure.ac b/configure.ac index 518fc34..7080461 100644 --- a/configure.ac +++ b/configure.ac @@ -30,7 +30,6 @@ AC_PROG_YACC dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(fcntl.h limits.h unistd.h xlocale.h) -AC_CHECK_HEADERS(wordexp.h) AC_CHECK_LIB(mswstr, DBLCMapStringW) AC_CHECK_DECLS([program_invocation_short_name], [], [], [[ #define _GNU_SOURCE diff --git a/src/sql/mdbsql.c b/src/sql/mdbsql.c index 0e8c578..dafc159 100644 --- a/src/sql/mdbsql.c +++ b/src/sql/mdbsql.c @@ -20,11 +20,6 @@ #define _XOPEN_SOURCE #include "mdbsql.h" -#ifdef HAVE_WORDEXP_H -#define HAVE_WORDEXP -#include -#endif - #ifdef HAVE_STRPTIME #include #include @@ -191,35 +186,9 @@ mdb_sql_close(MdbSQL *sql) MdbHandle *mdb_sql_open(MdbSQL *sql, char *db_name) { - char *db_namep = db_name; - -#ifdef HAVE_WORDEXP - wordexp_t words; - int need_free_words = 0; - - switch (wordexp(db_name, &words, 0)) - { - case 0: - if (words.we_wordc>0) - { - db_namep = words.we_wordv[0]; - } - need_free_words = 1; - break; - case WRDE_NOSPACE: - // If the error was WRDE_NOSPACE, then perhaps part of the result was allocated. - need_free_words = 1; - break; - default: - // Some other error - need_free_words = 0; - break; - } -#endif - - sql->mdb = mdb_open(db_namep, MDB_NOFLAGS); - if ((!sql->mdb) && (!strstr(db_namep, ".mdb"))) { - char *tmpstr = (char *) g_strconcat(db_namep, ".mdb", NULL); + sql->mdb = mdb_open(db_name, MDB_NOFLAGS); + if ((!sql->mdb) && (!strstr(db_name, ".mdb"))) { + char *tmpstr = g_strconcat(db_name, ".mdb", NULL); sql->mdb = mdb_open(tmpstr, MDB_NOFLAGS); g_free(tmpstr); } @@ -227,13 +196,6 @@ MdbHandle *mdb_sql_open(MdbSQL *sql, char *db_name) mdb_sql_error(sql, "Unable to locate database %s", db_name); } -#ifdef HAVE_WORDEXP - if ( need_free_words ) - { - wordfree(&words); - } -#endif - return sql->mdb; } static MdbSargNode *