changeset 49:a8c7db56ccb0

core: backed out changeset 55869b5e4761 We don't need properties because we will generate them in the map.
author David Demelier <markand@malikania.fr>
date Fri, 17 Jan 2020 12:09:30 +0100
parents 55869b5e4761
children 402aa7dcffe1
files .hgignore Makefile src/property.c src/property.h tests/test-property.c
diffstat 5 files changed, 2 insertions(+), 288 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Thu Jan 16 14:57:51 2020 +0100
+++ b/.hgignore	Fri Jan 17 12:09:30 2020 +0100
@@ -16,8 +16,7 @@
 ^tests/test-color(\.exe)?$
 ^tests/test-error(\.exe)?$
 ^tests/test-map(\.exe)?$
-^tests/test-property(\.exe)?$
-^tools/molko-map(\.exe)?$
+^tools/molko-map$
 
 # doxygen stuff.
 ^doxygen/html$
--- a/Makefile	Thu Jan 16 14:57:51 2020 +0100
+++ b/Makefile	Fri Jan 17 12:09:30 2020 +0100
@@ -37,7 +37,6 @@
                 src/sys.c \
                 src/texture.c \
                 src/util.c \
-                src/property.c \
                 src/splashscreen.c \
                 src/walksprite.c \
                 src/window.c
@@ -56,8 +55,7 @@
 
 TESTS=          tests/test-color.c \
                 tests/test-error.c \
-                tests/test-map.c \
-                tests/test-property.c
+                tests/test-map.c
 TESTS_INCS=     -I extern/libgreatest -I src ${SDL_CFLAGS}
 TESTS_LIBS=     ${LIB} ${SDL_LDFLAGS} ${LDFLAGS}
 TESTS_OBJS=     ${TESTS:.c=}
--- a/src/property.c	Thu Jan 16 14:57:51 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
- * property.c -- key-value properties
- *
- * Copyright (c) 2020 David Demelier <markand@malikania.fr>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <assert.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "util.h"
-#include "property.h"
-
-struct property *
-property_new(const char *key, const char *value)
-{
-	assert(key && strlen(key) <= PROPERTY_KEY_MAX);
-	assert(value && strlen(value) <= PROPERTY_VALUE_MAX);
-
-	struct property *prop;
-
-	prop = ecalloc(1, sizeof (struct property));
-	strncpy(prop->key, key, PROPERTY_KEY_MAX);
-	strncpy(prop->value, value, PROPERTY_VALUE_MAX);
-
-	return prop;
-}
-
-void
-property_add(struct property_list *head, struct property *prop)
-{
-	assert(head);
-	assert(prop);
-
-	if (head->next == NULL)
-		head->next = prop;
-	else
-		head->next->next = prop;
-}
-
-struct property *
-property_find(struct property_list *head, const char *key)
-{
-	assert(head);
-	assert(key);
-
-	for (struct property *it = head->next; it; it = it->next)
-		if (strcmp(it->key, key) == 0)
-			return it;
-
-	return NULL;
-}
-
-void
-property_clear(struct property_list *head)
-{
-	assert(head);
-
-	struct property *it;
-	struct property *next;
-
-	for (it = head->next; it && it->next; ) {
-		next = it->next;
-		free(it);
-		it = next;
-	}
-
-	head->next = NULL;
-}
--- a/src/property.h	Thu Jan 16 14:57:51 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * property.h -- key-value properties
- *
- * Copyright (c) 2020 David Demelier <markand@malikania.fr>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef MOLKO_PROPERTY_H
-#define MOLKO_PROPERTY_H
-
-/**
- * \file property.h
- * \brief Key-value properties.
- */
-
-/**
- * Maximum property key length.
- */
-#define PROPERTY_KEY_MAX        32
-
-/**
- * Maximum property value length.
- */
-#define PROPERTY_VALUE_MAX      128
-
-/**
- * \brief Key-value properties.
- *
- * This structure is implemented as linked-lists.
- */
-struct property {
-	char key[PROPERTY_KEY_MAX + 1];         /*!< (RW) Property key */
-	char value[PROPERTY_VALUE_MAX + 1];     /*!< (RW) Property value */
-	struct property *next;                  /*!< (RO) Pointer to next property */
-};
-
-/**
- * \brief The linked list of properties.
- */
-struct property_list {
-	struct property *next;                  /*!< (RO) Property head */
-};
-
-/**
- * Create a new property.
- *
- * \pre key != NULL
- * \pre value != NULL
- * \param key the property key
- * \param value the property value
- * \return a non-NULL property
- * \note The property must be deallocated with free(3)
- * \see property_clear
- */
-struct property *
-property_new(const char *key, const char *value);
-
-/**
- * Add a property to the linked-list specified by head.
- *
- * \pre head != NULL
- * \pre prop != NULL
- * \param head the linked-list
- * \param prop the property
- */
-void
-property_add(struct property_list *head, struct property *prop);
-
-/**
- * Try to find a property by key.
- *
- * \pre head != NULL
- * \pre key != NULL
- * \param head the linked-list
- * \param key the property key
- * \return the property or NULL on failure
- */
-struct property *
-property_find(struct property_list *head, const char *key);
-
-/**
- * Remove and free all properties.
- *
- * \pre head != NULL
- * \param head the linked-list
- * \warning All properties must be allocated on the heap.
- */
-void
-property_clear(struct property_list *head);
-
-#endif /* !MOLKO_PROPERTY_H */
--- a/tests/test-property.c	Thu Jan 16 14:57:51 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
- * test-property.c -- test properties
- *
- * Copyright (c) 2020 David Demelier <markand@malikania.fr>
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <greatest.h>
-
-#include <property.h>
-
-TEST
-add(void)
-{
-	struct property_list list = { 0 };
-
-	/*
-	 * 1 value:
-	 * - 0: "name" = "Jean Dujardin"
-	 */
-	property_add(&list, property_new("name", "Jean Dujardin"));
-	ASSERT_STR_EQ(list.next->key, "name");
-	ASSERT_STR_EQ(list.next->value, "Jean Dujardin");
-	ASSERT(!list.next->next);
-
-	/*
-	 * 1 value:
-	 * - 0: "name" = "Jean Dujardin"
-	 * - 1: "name" = "Daniel Balavoine"
-	 */
-	property_add(&list, property_new("name", "Daniel Balavoine"));
-	ASSERT_STR_EQ(list.next->key, "name");
-	ASSERT_STR_EQ(list.next->value, "Jean Dujardin");
-	ASSERT_STR_EQ(list.next->next->key, "name");
-	ASSERT_STR_EQ(list.next->next->value, "Daniel Balavoine");
-	ASSERT(!list.next->next->next);
-
-	property_clear(&list);
-	PASS();
-}
-
-TEST
-find(void)
-{
-	struct property_list list = { 0 };
-
-	/*
-	 * 2 value:
-	 * - "start-x" = "10"
-	 * - "start-y" = "20"
-	 */
-	property_add(&list, property_new("start-x", "10"));
-	property_add(&list, property_new("start-y", "20"));
-	ASSERT_STR_EQ("start-x", property_find(&list, "start-x")->key);
-	ASSERT_STR_EQ("10", property_find(&list, "start-x")->value);
-	ASSERT_STR_EQ("start-y", property_find(&list, "start-y")->key);
-	ASSERT_STR_EQ("20", property_find(&list, "start-y")->value);
-	property_clear(&list);
-	PASS();
-}
-
-TEST
-clear(void)
-{
-	struct property_list list = { 0 };
-
-	property_add(&list, property_new("start-x", "10"));
-	property_add(&list, property_new("start-y", "20"));
-	property_clear(&list);
-	ASSERT(!list.next);
-	PASS();
-}
-
-SUITE(simple)
-{
-	RUN_TEST(add);
-	RUN_TEST(find);
-	RUN_TEST(clear);
-}
-
-GREATEST_MAIN_DEFS();
-
-int
-main(int argc, char **argv)
-{
-	GREATEST_MAIN_BEGIN();
-	RUN_SUITE(simple);
-	GREATEST_MAIN_END();
-}