@@ -173,10 +173,32 @@ static char *json_escape_str(const char *str) {
173173
174174 return sb_steal_str (& sb );
175175}
176- /* END UTILS */
176+ /* ------ END UTILS ------------ */
177177
178178typedef size_t (* ResponseFunc )(char * ptr , size_t len , size_t nmemb , void * userdata );
179179
180+ void ac_print_ankicard (ankicard ac ) {
181+ puts ("Ankicard:" );
182+ printf ("deck: %s\n" , ac .deck );
183+ printf ("notetype: %s\n" , ac .notetype );
184+ printf ("Number of fields: %li\n" , ac .num_fields );
185+ printf ("Fieldnames: [" );
186+ for (size_t i = 0 ; i < ac .num_fields ; i ++ ) {
187+ if (i )
188+ putchar (',' );
189+ printf ("%s" , ac .fieldnames [i ]);
190+ }
191+ puts ("]" );
192+ printf ("Contents: \n" );
193+ for (size_t i = 0 ; i < ac .num_fields ; i ++ )
194+ printf ("%li: %s\n" , i , ac .fieldentries [i ]);
195+ if (ac .tags ) {
196+ for (char * * tagptr = ac .tags ; * tagptr ; tagptr ++ )
197+ printf ("%s" , * tagptr );
198+ } else
199+ puts ("Tags: none" );
200+ }
201+
180202void ankicard_free (ankicard ac ) {
181203 free (ac .deck );
182204 free (ac .notetype );
@@ -341,8 +363,11 @@ static size_t check_add_response(char *ptr, size_t len, size_t nmemb, void *user
341363
342364 if (strstr (ptr , "\"error\": null" ))
343365 * ret = (retval_s ){.ok = true};
344- else
345- * ret = (retval_s ){.data .string = ptr , .ok = false};
366+ else {
367+ char * err = strndup (ptr , nmemb );
368+ * ret = (retval_s ){.data .string = err , .ok = false};
369+ // TODO: This is a memory leak
370+ }
346371
347372 return nmemb ;
348373}
0 commit comments