summaryrefslogtreecommitdiff
path: root/navit/data/poi_geodownload/libmdb/props.c
diff options
context:
space:
mode:
Diffstat (limited to 'navit/data/poi_geodownload/libmdb/props.c')
-rw-r--r--navit/data/poi_geodownload/libmdb/props.c127
1 files changed, 0 insertions, 127 deletions
diff --git a/navit/data/poi_geodownload/libmdb/props.c b/navit/data/poi_geodownload/libmdb/props.c
deleted file mode 100644
index 61db9f54..00000000
--- a/navit/data/poi_geodownload/libmdb/props.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* MDB Tools - A library for reading MS Access database file
- * Copyright (C) 2000 Brian Bruns
- *
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "mdbtools.h"
-
-GPtrArray *
-mdb_read_props_list(gchar *kkd, int len)
-{
- guint32 record_len;
- int pos = 0;
- gchar *name;
- GPtrArray *names = NULL;
- int i = 0;
-
- names = g_ptr_array_new();
-#ifdef MDB_DEBUG
- buffer_dump(kkd, 0, len - 1);
-#endif
- pos = 0;
- while (pos < len) {
- record_len = mdb_get_int16(kkd, pos);
- pos += 2;
-#ifdef MDB_DEBUG
- printf("%02d ",i++);
- buffer_dump(kkd, pos - 2, pos + record_len - 1);
-#endif
- name = g_malloc(record_len + 1);
- strncpy(name, &kkd[pos], record_len);
- name[record_len] = '\0';
- pos += record_len;
- g_ptr_array_add(names, name);
-#ifdef MDB_DEBUG
- printf("new len = %d\n", names->len);
-#endif
- }
- return names;
-}
-void
-mdb_free_props(MdbProperties *props)
-{
- if (!props) return;
-
- if (props->name) g_free(props->name);
- g_free(props);
-}
-MdbProperties *
-mdb_alloc_props()
-{
- MdbProperties *props;
-
- props = g_malloc0(sizeof(MdbProperties));
-
- return props;
-}
-MdbProperties *
-mdb_read_props(MdbHandle *mdb, GPtrArray *names, gchar *kkd, int len)
-{
- guint32 record_len, name_len;
- int pos = 0;
- int elem, dtype, dsize;
- gchar *name, *value;
- MdbProperties *props;
- int i = 0;
-
-#ifdef MDB_DEBUG
- buffer_dump(kkd, 0, len - 1);
-#endif
- pos = 0;
-
- /* skip the name record */
- record_len = mdb_get_int16(kkd, pos);
- pos += 4;
- name_len = mdb_get_int16(kkd, pos);
- pos += 2;
- props = mdb_alloc_props();
- if (name_len) {
- props->name = g_malloc(name_len + 1);
- strncpy(props->name, &kkd[pos], name_len);
- props->name[name_len]='\0';
- }
- pos += name_len;
-
- props->hash = g_hash_table_new(g_str_hash, g_str_equal);
-
- while (pos < len) {
- record_len = mdb_get_int16(kkd, pos);
- elem = mdb_get_int16(kkd, pos + 4);
- dtype = kkd[pos + 3];
- dsize = mdb_get_int16(kkd, pos + 6);
- value = g_malloc(dsize + 1);
- strncpy(value, &kkd[pos + 8], dsize);
- value[dsize] = '\0';
- name = g_ptr_array_index(names,elem);
-#ifdef MDB_DEBUG
- printf("%02d ",i++);
- buffer_dump(kkd, pos, pos + record_len - 1);
- printf("elem %d dsize %d dtype %d\n", elem, dsize, dtype);
-#endif
- if (dtype == MDB_MEMO) dtype = MDB_TEXT;
- if (dtype == MDB_BOOL) {
- g_hash_table_insert(props->hash, g_strdup(name), g_strdup(kkd[pos + 8] ? "yes" : "no"));
- } else {
- g_hash_table_insert(props->hash, g_strdup(name), g_strdup(mdb_col_to_string(mdb, kkd, pos + 8, dtype, dsize)));
- }
- g_free(value);
- pos += record_len;
- }
- return props;
-
-}