-/* C<<1 header file v0.6 - style sheet for ANSI C */
+/* C<<1 header file v0.7 - style sheet for ANSI C */
/* Please pronounce as "cee-shift-left-by-one" :) */
-/* Copyright (G) 2004 Michael xChaos Polak, x@n.cz
+/* Copyright (G) 2004-2007 Michael xChaos Polak, x(at)n.cz
The C<<1 header file is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
#define push(A,B) ((A && A!=B)?A->_next=B:0,B=A)
#define pop(A,B) (B?((A?free(A):0),A=B=B->_next):(A=NULL))
#define append(A,B) if(B) { void *N=A; A->_next=NULL; search(A,B,!A->_next) {A->_next=N; break;}} else push(A,B);
-#define remove(A,B,C) { void **_D=NULL; search(A,B,C) { if(_D)*_D=A->_next; else B=A->_next; free(A); A=NULL;} else _D=(void *)&(A->_next); }
+#define remove(A,B,C) { void **_D=NULL; for each(A,B) if(C) { if(_D)*_D=A->_next; else B=A->_next; free(A);} else _D=(void *)&(A->_next); }
#define drop(A,B) for( A=B; A || (B=NULL); B=A, A=A->_next, free(B) )
/* Dynamic list iterations and sequences, updated 2003-05-29 by xCh. */
/* Enlightened iterations usable in for() , updated 2007-12-11 by xCh. */
#define range(VAR,FROM,TO) (VAR=FROM; VAR <= TO; VAR++)
-#define each ((A,B) A=B; A; A=A->_next)
+#define each(A,B) ( A=B; A; A=A->_next)
#define lines(STR,F) ()
/* EXP macros for Dummysort sequences, updated 2003-05-29 by xCh. */
list(Zaznam);
} *zaznam,*zaznamy=NULL;
-program
+program2
{
puts("4x insert(zaznam,zaznamy,order_by,i);");
create(zaznam, Zaznam);
zaznam->i=1;
zaznam->j="ddd";
insert(zaznam,zaznamy,order_by,i);
+
create(zaznam, Zaznam);
zaznam->i=3;
zaznam->j="bbbbb";
insert(zaznam,zaznamy,order_by,i);
+
create(zaznam, Zaznam);
zaznam->i=0;
zaznam->j="e";
insert(zaznam,zaznamy,order_by,i);
+
create(zaznam, Zaznam);
zaznam->i=2;
zaznam->j="cc";
insert(zaznam,zaznamy,order_by,i);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy) printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
puts("1x append(zaznam,zaznamy);");
create(zaznam, Zaznam);
zaznam->i=4;
zaznam->j="aaa";
append(zaznam,zaznamy);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
puts("sort(zaznam,zaznamy,desc_order_by,i);");
sort(zaznam,zaznamy,desc_order_by,i);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
puts("sort(zaznam,zaznamy,desc_sort_by,j);");
sort(zaznam,zaznamy,desc_sort_by,j);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
puts("remove(zaznam,zaznamy,zaznam->i==1);");
remove(zaznam,zaznamy,zaznam->i==1);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
puts("drop(zaznam,zaznamy);");
drop(zaznam,zaznamy);
- every(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
+
+ for each(zaznam,zaznamy)printf("i=%d, j=%s\n",zaznam->i,zaznam->j);
}