extern void* System_strtok(const char *str0, const char *delimit) { char *s; void *res = mmc_mk_nil(); char *str = strdup(str0); s=strtok(str,delimit); if (s == NULL) { free(str); MMC_THROW(); } res = mmc_mk_cons(mmc_mk_scon(s),res); while ((s=strtok(NULL,delimit))) { res = mmc_mk_cons(mmc_mk_scon(s),res); } free(str); return listReverse(res); }
ListCell *postGetLatestGraph(sqlite3 *DB, int accountId, int page) { if (accountId == -1) return NULL; int rc; Post *post = NULL; ListCell *posts = NULL; sqlite3_stmt *statement; rc = sqlite3_prepare_v2( DB, "SELECT posts.id, posts.createdAt, posts.author, posts.body" " FROM posts" " LEFT OUTER JOIN connections" " ON posts.author = connections.account2" " WHERE connections.account1 = ?" " OR posts.author = ?" " ORDER BY posts.createdAt DESC" " LIMIT 10 " "OFFSET ?", -1, &statement, NULL); if (rc != SQLITE_OK) return NULL; if (sqlite3_bind_int(statement, 1, accountId) != SQLITE_OK) goto fail; if (sqlite3_bind_int(statement, 2, accountId) != SQLITE_OK) goto fail; if (sqlite3_bind_int(statement, 3, page * 10) != SQLITE_OK) goto fail; while (sqlite3_step(statement) == SQLITE_ROW) { post = postNew(sqlite3_column_int(statement, 0), sqlite3_column_int(statement, 1), sqlite3_column_int(statement, 2), (char *)sqlite3_column_text(statement, 3)); posts = listCons(post, sizeof(Post), posts); } posts = listReverse(posts); fail: sqlite3_finalize(statement); return posts; }
/* * Given the list fnames [z,...,b,a] and punct "->", * allocate the string "'a'->'b'->...->'z'". */ local String inclActiveFileChain(StringList fnames, String punct) { StringList sl0, sl; Buffer buf; String s; int i; buf = bufNew(); sl0 = listReverse(String)(fnames); for (sl = sl0, i = 0; sl; sl = cdr(sl), i++) { if (i > 0) bufPuts(buf, punct); bufPrintf(buf, "'%s'", car(sl)); } s = bufLiberate(buf); listFree(String)(sl0); return s; }
SymeList arGetSymes(Archive ar) { ArEntryList alist; SymeList symes; if (!ar) return 0; if (ar->symes) return ar->symes; arFilter(ar); for (alist = ar->members; alist; alist = cdr(alist)) { ArEntry arent = car(alist); if (!arent->mark) continue; symes = listReverse(Syme)(libGetSymes(arEntryLib(ar, arent))); ar->symes = listNConcat(Syme)(symes, ar->symes); } ar->symes = listNReverse(Syme)(ar->symes); return ar->symes; }
TPoss tpossUnion(TPoss tp1, TPoss tp2) { TFormList l1; TFormList l; if (tp1 == NULL) return tp2; else if (tp2 == NULL) return tp1; l1 = tp1->possl; l = listReverse(TForm)(tp2->possl); /* Reversed copy */ for (; l1; l1 = cdr(l1)) { car(l1) = tfFollowOnly(car(l1)); if (!tpossHas(tp2, car(l1))) l = listCons(TForm)(car(l1), l); } l = listNReverse(TForm)(l); return tpossFrTheList(l); }
extern void* Error_getMessages(threadData_t *threadData) { return listReverse(ErrorImpl__getMessages(threadData)); }
extern void* Error_getMessages() { return listReverse(ErrorImpl__getMessages()); }