summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rwxr-xr-xsrc/common/Makefile.am2
-rw-r--r--src/common/sqlite.c58
-rw-r--r--src/common/sqlite.h6
3 files changed, 65 insertions, 1 deletions
diff --git a/src/common/Makefile.am b/src/common/Makefile.am
index 7615f43..1ab4768 100755
--- a/src/common/Makefile.am
+++ b/src/common/Makefile.am
@@ -14,7 +14,7 @@ libcommon_la_SOURCES = \
leb128.h leb128.c \
macros.h \
net.h net.c \
- sqlite.h \
+ sqlite.h sqlite.c \
xdg.h xdg.c \
xml.h xml.c
diff --git a/src/common/sqlite.c b/src/common/sqlite.c
new file mode 100644
index 0000000..ec3c280
--- /dev/null
+++ b/src/common/sqlite.c
@@ -0,0 +1,58 @@
+
+/* Chrysalide - Outil d'analyse de fichiers binaires
+ * sqlite.c - extension des définitions propres à SQLite
+ *
+ * Copyright (C) 2015 Cyrille Bagard
+ *
+ * This file is part of Chrysalide.
+ *
+ * OpenIDA is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * OpenIDA 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Foobar. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#include "sqlite.h"
+
+
+#include <string.h>
+
+
+
+/******************************************************************************
+* *
+* Paramètres : values = tableau d'éléments à consulter. *
+* count = nombre de descriptions renseignées. *
+* name = désignation de la valeur recherchée. *
+* *
+* Description : Effectue une recherche au sein d'un ensemble de valeurs. *
+* *
+* Retour : Elément retrouvé ou NULL en cas d'échec. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+const bound_value *find_bound_value(const bound_value *values, size_t count, const char *name)
+{
+ const bound_value *result; /* Trouvaille à retourner */
+ size_t i; /* Boucle de parcours */
+
+ result = NULL;
+
+ for (i = 0; i < count && result == NULL; i++)
+ if (strcmp(values[i].name, name) == 0)
+ result = &values[i];
+
+ return result;
+
+}
diff --git a/src/common/sqlite.h b/src/common/sqlite.h
index 66fb773..559af38 100644
--- a/src/common/sqlite.h
+++ b/src/common/sqlite.h
@@ -26,6 +26,8 @@
#include <stdint.h>
+#include <sys/types.h>
+
/* Type pour les insertions brutes */
@@ -52,5 +54,9 @@ typedef struct _bound_value
} bound_value;
+/* Effectue une recherche au sein d'un ensemble de valeurs. */
+const bound_value *find_bound_value(const bound_value *, size_t, const char *);
+
+
#endif /* _COMMON_SQLITE_H */