]> asedeno.scripts.mit.edu Git - PuTTY.git/blobdiff - misc.c
Tweaks re Mac elsewhere in FAQ after bb6dd98.
[PuTTY.git] / misc.c
diff --git a/misc.c b/misc.c
index c6587ab1e96eb21563683c3cc55e2d0ecec300dd..5ff403d6b495f60ef9f8a7daf7a7075ef28b5693 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -175,7 +175,7 @@ int main(void)
     return fails != 0 ? 1 : 0;
 }
 /* Stubs to stop the rest of this module causing compile failures. */
-void modalfatalbox(char *fmt, ...) {}
+void modalfatalbox(const char *fmt, ...) {}
 int conf_get_int(Conf *conf, int primary) { return 0; }
 char *conf_get_str(Conf *conf, int primary) { return NULL; }
 #endif /* TEST_HOST_STRFOO */
@@ -412,7 +412,7 @@ char *dupvprintf(const char *fmt, va_list ap)
     size = 512;
 
     while (1) {
-#ifdef _WINDOWS
+#if defined _WINDOWS && _MSC_VER < 1900 /* 1900 == VS2015 has real snprintf */
 #define vsnprintf _vsnprintf
 #endif
 #ifdef va_copy
@@ -460,7 +460,7 @@ char *fgetline(FILE *fp)
     int size = 512, len = 0;
     while (fgets(ret + len, size - len, fp)) {
        len += strlen(ret + len);
-       if (ret[len-1] == '\n')
+       if (len > 0 && ret[len-1] == '\n')
            break;                     /* got a newline, we're done */
        size = len + 512;
        ret = sresize(ret, size, char);
@@ -755,7 +755,7 @@ void *safemalloc(size_t n, size_t size)
 #else
        strcpy(str, "Out of memory!");
 #endif
-       modalfatalbox(str);
+       modalfatalbox("%s", str);
     }
 #ifdef MALLOC_LOG
     if (fp)
@@ -797,7 +797,7 @@ void *saferealloc(void *ptr, size_t n, size_t size)
 #else
        strcpy(str, "Out of memory!");
 #endif
-       modalfatalbox(str);
+       modalfatalbox("%s", str);
     }
 #ifdef MALLOC_LOG
     if (fp)
@@ -830,7 +830,7 @@ void safefree(void *ptr)
  */
 
 #ifdef DEBUG
-extern void dputs(char *);             /* defined in per-platform *misc.c */
+extern void dputs(const char *); /* defined in per-platform *misc.c */
 
 void debug_printf(const char *fmt, ...)
 {
@@ -853,7 +853,7 @@ void debug_memdump(const void *buf, int len, int L)
     if (L) {
        int delta;
        debug_printf("\t%d (0x%x) bytes:\n", len, len);
-       delta = 15 & (unsigned long int) p;
+       delta = 15 & (uintptr_t)p;
        p -= delta;
        len += delta;
     }
@@ -1064,7 +1064,7 @@ int match_ssh_id(int stringlen, const void *string, const char *id)
 void *get_ssh_string(int *datalen, const void **data, int *stringlen)
 {
     void *ret;
-    int len;
+    unsigned int len;
 
     if (*datalen < 4)
         return NULL;
@@ -1087,3 +1087,14 @@ int get_ssh_uint32(int *datalen, const void **data, unsigned *ret)
     *data = (const char *)*data + 4;
     return TRUE;
 }
+
+int strstartswith(const char *s, const char *t)
+{
+    return !memcmp(s, t, strlen(t));
+}
+
+int strendswith(const char *s, const char *t)
+{
+    size_t slen = strlen(s), tlen = strlen(t);
+    return slen >= tlen && !strcmp(s + (slen - tlen), t);
+}