Add some auxiliary string macros
authorparasti <parasti@78b8d119-cf0a-0410-b17c-f493084dd1d7>
Sat, 14 Aug 2010 23:45:39 +0000 (23:45 +0000)
committerparasti <parasti@78b8d119-cf0a-0410-b17c-f493084dd1d7>
Sat, 14 Aug 2010 23:45:39 +0000 (23:45 +0000)
git-svn-id: https://s.snth.net/svn/neverball/trunk@3246 78b8d119-cf0a-0410-b17c-f493084dd1d7

ball/main.c
ball/set.c
putt/course.c
share/common.h

index 7de5112..122eed8 100644 (file)
@@ -322,12 +322,12 @@ static void parse_args(int argc, char **argv)
 
 static int is_replay(struct dir_item *item)
 {
-    return strcmp(item->path + strlen(item->path) - 4, ".nbr") == 0;
+    return str_ends_with(item->path, ".nbr");
 }
 
 static int is_score(struct dir_item *item)
 {
-    return strncmp(item->path, "neverballhs-", sizeof ("neverballhs-") - 1) == 0;
+    return str_starts_with(item->path, "neverballhs-");
 }
 
 static void make_dirs_and_migrate(void)
@@ -376,6 +376,8 @@ static void make_dirs_and_migrate(void)
     fs_mkdir("Screenshots");
 }
 
+/*---------------------------------------------------------------------------*/
+
 int main(int argc, char *argv[])
 {
     SDL_Joystick *joy = NULL;
index 9a1765a..7a5976b 100644 (file)
@@ -292,8 +292,8 @@ static int set_is_loaded(const char *path)
 
 static int is_unseen_set(struct dir_item *item)
 {
-    return (strncmp(base_name(item->path, NULL), "set-", 4) == 0 &&
-            strcmp(item->path + strlen(item->path) - 4, ".txt") == 0 &&
+    return (str_starts_with(base_name(item->path, NULL), "set-") &&
+            str_ends_with(item->path, ".txt") &&
             !set_is_loaded(item->path));
 }
 
index ded5de1..ee3c1ab 100644 (file)
@@ -86,8 +86,8 @@ static int course_is_loaded(const char *path)
 
 static int is_unseen_course(struct dir_item *item)
 {
-    return (strncmp(base_name(item->path, NULL), "holes-", 6) == 0 &&
-            strcmp(item->path + strlen(item->path) - 4, ".txt") == 0 &&
+    return (str_starts_with(base_name(item->path, NULL), "holes-") &&
+            str_ends_with(item->path, ".txt") &&
             !course_is_loaded(item->path));
 }
 
index e292b09..e9fb737 100644 (file)
@@ -47,6 +47,9 @@ char *trunc_string(const char *src, char *dst, int len);
 #endif
 #define strdup dupe_string
 
+#define str_starts_with(s, h) (strncmp((s), (h), strlen(h)) == 0)
+#define str_ends_with(s, t) (strcmp((s) + strlen(s) - strlen(t), (t)) == 0)
+
 time_t make_time_from_utc(struct tm *);
 const char *date_to_str(time_t);