Example #1
0
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);
}
Example #2
0
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;
}
Example #3
0
File: include.c Project: pdo/aldor
/*
 * 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;
}
Example #4
0
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;
}
Example #5
0
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);
}
Example #6
0
extern void* Error_getMessages(threadData_t *threadData)
{
  return listReverse(ErrorImpl__getMessages(threadData));
}
Example #7
0
extern void* Error_getMessages()
{
  return listReverse(ErrorImpl__getMessages());
}