shithub: masto9

Download patch

ref: 454fd94f7db58e8bef6fb5123a9ed260271d3c06
parent: 6c7016b5b7119d833af543fe5ad707b1b0db5c7e
author: Julien Blanchard <jblanchard@makemusic.com>
date: Fri Mar 31 14:36:16 EDT 2023

strdup -> estrdup

--- a/masto9.c
+++ b/masto9.c
@@ -49,25 +49,25 @@
 		media_attachments = getjsonkey(toot_json, "media_attachments");
 
 		Toot toot = emalloc(sizeof(Toot));
-		toot.id = strdup((char *)id->s);
+		toot.id = estrdup((char *)id->s);
 
 		if(reblog->s == nil) {
 			toot.reblogged = 0;
-			toot.content = strdup((char *)content->s);
+			toot.content = estrdup((char *)content->s);
 		} else {
 			reblog_content = getjsonkey(reblog, "content");
 			reblog_account = getjsonkey(reblog, "account");
 			reblog_handle = getjsonkey(reblog_account, "acct");
 
-			toot.content = strdup((char *)reblog_content->s);
-			toot.reblogged_handle = strdup((char *)reblog_handle->s);
+			toot.content = estrdup((char *)reblog_content->s);
+			toot.reblogged_handle = estrdup((char *)reblog_handle->s);
 			toot.reblogged = 1;
 
 			media_attachments = getjsonkey(reblog, "media_attachments");
 		};
-		toot.handle = strdup((char *)handle->s);
-		toot.display_name = strdup((char *)display_name->s);
-		toot.avatar_url = strdup((char *)avatar->s);
+		toot.handle = estrdup((char *)handle->s);
+		toot.display_name = estrdup((char *)display_name->s);
+		toot.avatar_url = estrdup((char *)avatar->s);
 		toot.attachments_count = 0;
 
 		if(media_attachments->s != nil) {
@@ -78,12 +78,12 @@
 				type = getjsonkey(attachment_json, "type");
 				preview_url = getjsonkey(attachment_json, "preview_url");
 				remote_url = getjsonkey(attachment_json, "remote_url");
-				attachment.type = strdup((char *)type->s);
+				attachment.type = estrdup((char *)type->s);
 
         if(strcmp(type->s, "image") == 0){
-          attachment.url = strdup((char *)preview_url->s);
+          attachment.url = estrdup((char *)preview_url->s);
         } else {
-          attachment.url = strdup((char *)remote_url->s);
+          attachment.url = estrdup((char *)remote_url->s);
         }
 
 				toot.media_attachments[j] = attachment;
@@ -124,14 +124,14 @@
     handle = getjsonkey(account, "acct");
 
 		Notification notif = emalloc(sizeof(Notification));
-		notif.id = strdup((char *)id->s);
+		notif.id = estrdup((char *)id->s);
 
-    notif.type = strdup((char *)type->s);
+    notif.type = estrdup((char *)type->s);
     if(strcmp(type->s, "follow") != 0) {
-      notif.content = strdup((char *)content->s);
+      notif.content = estrdup((char *)content->s);
     }
-		notif.display_name = strdup((char *)display_name->s);
-		notif.handle = strdup((char *)handle->s);
+		notif.display_name = estrdup((char *)display_name->s);
+		notif.handle = estrdup((char *)handle->s);
 
 		notifs[i] = notif;
 		i++;
@@ -153,19 +153,25 @@
 tootauthor(char *token, char *host, char *id)
 {
   JSON *obj, *account, *reblog;
-  char *endpoint;
+  char *endpoint, *response;
 
   endpoint = concat("statuses/", id);
 	obj = mastodonget(token, host, endpoint);
 
   reblog = getjsonkey(obj, "reblog");
-  if(reblog != nil) {
+  if(reblog->s != nil) {
     account = getjsonkey(reblog, "account");
   } else {
     account = getjsonkey(obj, "account");
   }
 
-  return getjsonkey(account, "acct")->s;
+  response = estrdup((char *)getjsonkey(account, "acct")->s);
+
+  free(account);
+  free(reblog);
+  free(obj);
+
+  return response;
 }
 
 void
@@ -368,6 +374,19 @@
   Bflush(&out);
 }
 
+void
+debug(char *token, char *host, char *id)
+{
+  JSON *obj;
+  char *endpoint;
+
+  endpoint = esmprint("statuses/%s", id);
+	obj = mastodonget(token, host, endpoint);
+  print("%J\n", obj);
+  jsonfree(obj);
+}
+
+
 //echo 'proto=pass service=mastodon server=instanceHostName pass=yourToken user=yourUsername' > /mnt/factotum/ctl
 void
 main(int argc, char**argv)
@@ -408,6 +427,9 @@
   } else if(strcmp(command, "reply") == 0) {
     id = argv[3];
     reply(token, host, id);
+  } else if(strcmp(command, "debug") == 0) {
+    id = argv[3];
+    debug(token, host, id);
   } else if(strcmp(command, "more") == 0) {
     id = argv[3];
     Toot toots[TOOTSCOUNT];
--- a/util.c
+++ b/util.c
@@ -97,17 +97,6 @@
 	return nil;
 }
 
-u32int
-strhash(char *s)
-{
-	u32int h, c;
-
-	h = 5381;
-	while(c = *s++ & 0xff)
-		h = ((h << 5) + h) + c;
-	return h;
-}
-
 void
 removesubstring(char *str, char *sub)
 {