]> skyeroc.xyz Git - dgamelaunch/commitdiff
Changes to loadbanner:
authorsbkelley <sb24kelley@gmail.com>
Sat, 6 Jun 2026 06:21:55 +0000 (02:21 -0400)
committersbkelley <sb24kelley@gmail.com>
Mon, 15 Jun 2026 21:43:02 +0000 (17:43 -0400)
* You can put $INCLUDE anywhere in a line

Changelog
configure.ac
dgamelaunch.c

index ce3ff67e59676adb7a7a140cc33c84fd0e216bd7..b1ca1bee2928d4b243428d476e349642386f212b 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,3 +1,9 @@
+1.6.1-roc (2026)
+    * Forked noisytoot repository and merged changes in paxed's repo since
+         last merge.
+       * Changed loadbanner() [dgamelaunch.c] -- $INCLUDE() can now be anywhere
+         in a line.
+       
 1.6.0-hdf (2018-2020)
        * Enhanced watchmode - use game's built-in whatch function instead of
          ttyplay, when available (FIQ/Tangles)
index 6ed12d91210ec55050e7d8ca0b9a54105d19b9f2..32a7b116e7f3fc926e3df161fa5b369faefa2875 100644 (file)
@@ -2,7 +2,7 @@ dnl Use autoconf 2.71
 dnl (Things tend to break across versions, they're neither upwards nor
 dnl downward compatible. Blame GNU.)
 
-AC_INIT([dgamelaunch],[1.6.0-hdf])
+AC_INIT([dgamelaunch],m4_esyscmd_s([git describe --abbrev=7 --dirty --always | tr -d '\n']))
 AC_PREREQ([2.71])
 
 AC_CONFIG_HEADERS([config.h])
index 04a59ed1dd12b7953d6639433509c182809a6a6a..33136eed9d2ca3ce27413b631594f64910a5ba7e 100644 (file)
@@ -467,18 +467,18 @@ bannerstrmangle(char *buf, char *bufnew, int buflen, char *fromstr, char *tostr)
     if (strstr(b, fromstr)) {
        int i = 0;
        while ((loc = strstr (b, fromstr)) != NULL) {
-           for (; i < buflen; i++) {
-               if (loc != b)
-                   bufnew[i] = *(b++);
-               else {
+    for (; i < buflen; i++) {
+      if (loc != b)
+          bufnew[i] = *(b++);
+                 else {
                    strlcat (bufnew, tostr, buflen);
                    b += strlen(fromstr);
                    i += strlen(tostr);
                    break;
-                }
+      }
 
-               if (strlen (b) == 0)
-                   break;
+                   if (strlen (b) == 0)
+                     break;
            }
        }
 
@@ -575,66 +575,66 @@ banner_addline(struct dg_banner *ban, char *line)
 }
 
 void
-loadbanner (char *fname, struct dg_banner *ban)
-{
+loadbanner (char *fname, struct dg_banner *ban) {
   FILE *bannerfile;
   char buf[DGL_BANNER_LINELEN+1];
-  if (ban->len > 23) return;
+  if (ban->len > 23)
+    return;
 
   memset (buf, 0, DGL_BANNER_LINELEN);
 
   bannerfile = fopen (fname, "r");
 
-  if (!bannerfile)
-    {
-       if (ban->len == 0)
-           banner_addline(ban, "### dgamelaunch " PACKAGE_VERSION " - network console game launcher");
-       snprintf(buf, DGL_BANNER_LINELEN, "### NOTE: administrator has not installed a %s file", fname);
-       banner_addline(ban, buf);
-       return;
-    }
+  if (!bannerfile) {
+    if (ban->len == 0)
+      banner_addline(ban, "### dgamelaunch " PACKAGE_VERSION " - network console game launcher");
+    snprintf(buf, DGL_BANNER_LINELEN, "### NOTE: administrator has not installed a %s file", fname);
+    banner_addline(ban, buf);
+    return;
+  }
 
-  while (fgets (buf, DGL_BANNER_LINELEN, bannerfile) != NULL)
-    {
-      char bufnew[DGL_BANNER_LINELEN+1];
-      int slen;
-
-      memset (bufnew, 0, DGL_BANNER_LINELEN);
-
-      slen = strlen(buf);
-      if ((slen > 0) && (buf[slen-1] == '\n')) buf[slen-1] = '\0';
-
-      strncpy(bufnew, buf, DGL_BANNER_LINELEN);
-      if (strstr(bufnew, "$INCLUDE(")) {
-         char *fn = bufnew + 9;
-         char *fn_end = strchr(fn, ')');
-         if (fn_end) {
-             *fn_end = '\0';
-             if (strcmp(fname, fn)) {
-                 loadbanner(fn, ban);
-             }
-         }
+  while (fgets (buf, DGL_BANNER_LINELEN, bannerfile) != NULL) {
+    char bufnew[DGL_BANNER_LINELEN+1];
+    int slen;
+    char *inclpos;
+
+    memset (bufnew, 0, DGL_BANNER_LINELEN);
+
+    slen = strlen(buf);
+    if ((slen > 0) && (buf[slen-1] == '\n'))
+      buf[slen-1] = '\0';
+
+    strncpy(bufnew, buf, DGL_BANNER_LINELEN);
+    if ( inclpos = strstr(bufnew, "$INCLUDE(") ) {
+      char *fn = inclpos + 9;
+      char *fn_end = strchr(fn, ')');
+      if (fn_end) {
+        *fn_end = '\0';
+        if (strcmp(fname, fn)) { // Don't load THIS file
+          loadbanner(fn, ban);
+        }
+      }
+    } else {
+      char tmpbufnew[DGL_BANNER_LINELEN+1];
+      struct dg_banner_var *bv = globalconfig.banner_var_list;
+      while (bv) {
+        strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, bv->name, banner_var_resolve(bv)), DGL_BANNER_LINELEN);
+        bv = bv->next;
+      }
+      strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$VERSION", PACKAGE_STRING), DGL_BANNER_LINELEN);
+      if (me && loggedin) {
+        strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$USERNAME", me->username), DGL_BANNER_LINELEN);
       } else {
-         char tmpbufnew[DGL_BANNER_LINELEN+1];
-         struct dg_banner_var *bv = globalconfig.banner_var_list;
-         while (bv) {
-             strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, bv->name, banner_var_resolve(bv)), DGL_BANNER_LINELEN);
-             bv = bv->next;
-         }
-         strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$VERSION", PACKAGE_STRING), DGL_BANNER_LINELEN);
-         if (me && loggedin) {
-             strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$USERNAME", me->username), DGL_BANNER_LINELEN);
-         } else {
-             strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$USERNAME", "[Anonymous]"), DGL_BANNER_LINELEN);
-         }
-          strncpy(bufnew, bannerstr_substprefs(bufnew, tmpbufnew, DGL_BANNER_LINELEN), DGL_BANNER_LINELEN);
-         banner_addline(ban, bufnew);
+        strncpy(bufnew, bannerstrmangle(bufnew, tmpbufnew, DGL_BANNER_LINELEN, "$USERNAME", "[Anonymous]"), DGL_BANNER_LINELEN);
       }
+      strncpy(bufnew, bannerstr_substprefs(bufnew, tmpbufnew, DGL_BANNER_LINELEN), DGL_BANNER_LINELEN);
+      banner_addline(ban, bufnew);
+    }
 
-      memset (buf, 0, DGL_BANNER_LINELEN);
+    memset (buf, 0, DGL_BANNER_LINELEN);
 
-      if (ban->len >= 24)
-         break;
+    if (ban->len >= 24)
+      break;
   }
 
   fclose (bannerfile);