Ejemplo n.º 1
0
Archivo: kref.c Proyecto: ZoneMo/backup
void kref(char *name, FILE *fp, Table_T identifiers) {
	char buf[512], *filename = "";
	int linenum;

	if (name)
		filename = name;
	for (linenum = 1; fgets(buf, sizeof buf, fp) != NULL; linenum++) {
		int i, j;
		for (i = 0; (j = getword(buf, &i, first, rest)) > 0; i = j) {
			char *id = Str_sub(buf, j, i);
			const char *ln = Atom_int(linenum);
			Seq_T seq;
			Table_T files;
			files = Table_get(identifiers, id);
			if (files == NULL) {
				files = Table_new(0,
					(int (*)(const void *, const void *))strcmp, strhash);
				Table_put(identifiers, id, files);
			} else
				FREE(id);
			seq = Table_get(files, filename);
			if (seq == NULL) {
				seq = Seq_new(0);
				Table_put(files, Str_dup(filename, 1, 0, 1), seq);
				Seq_addlo(seq, (void *)ln);
			} else if (Seq_get(seq, 0) != ln)
				Seq_addlo(seq, (void *)ln);
		}
	}
}
Ejemplo n.º 2
0
void test_Atom_free(void)
{
   Atom_reset();
   atom = Atom_string(msg);
   Atom_free(atom);
   CU_ASSERT_EQUAL(Atom_count(), 0);
   
   int i;
   for (i = 0; i < 10000; i++)
      Atom_int(i);
   for (i = 0; i < 5000; i += 2) {
      atom = Atom_int(i);
      Atom_free(atom);
   }
   CU_ASSERT_EQUAL(Atom_count(), 7500);
}
Ejemplo n.º 3
0
void test_Atom_int(void)
{
   const char *str;
   int i = -123456;
   str = Atom_int(i);
   CU_ASSERT_STRING_EQUAL(str, "-123456");
}
Ejemplo n.º 4
0
void test_Atom_map(void)
{
   Atom_reset();
   atom = Atom_string(msg);
   CU_ASSERT_EQUAL(Atom_count(), 1);
   
   Atom_reset();
   int i;
   for (i = 0; i < 10; i++)
      Atom_int(i);
   CU_ASSERT_EQUAL(Atom_count(), 10);
}
Ejemplo n.º 5
0
char *stringd(long n) {
	return (char *)Atom_int(n);
}