#define for_range(VAR,FROM,TO) for( VAR=FROM ; FROM<=TO?VAR<=TO:VAR>=TO ; FROM<=TO?VAR++:VAR--)
#define for_each(A,B) for(A=B; A; A=A->_next)
#define for_search(A,B,C) for_each(A,B) if(C)
-/* to do: #define for_file_lines(STR,F) _NEW_F for() */
+#define for_file_lines(STR,F) /* _NEW_F for() */
+#define for_ints(VAR,...) _NEW_I while(_iterate_ints(&VAR,_I,__VA_LIST) )
+#define for_strs(VAR,...) _NEW_S
/* obsolete #define every(A,B) for( A=B; A; A=A->_next) */
/* obsolete #define search(A,B,C) every(A,B) if(C) */
/* obsolete #define find(A,B,C) search(A,B,C) break; if(A) */
/* ------------------------------------------------------------------- */
/* 5. C<<1 argument handling, updated 2008-01-16 by xCh. */
/* ------------------------------------------------------------------- */
-#define for_arguments _NEW_I if(argc>1) for(_I=1;_I<argc;_I++)
-#define if_argument(VAL) if(eq(argv[_I],VAL))
-#define this_argument argv[_I]
-#define next_argument ((_I+1<argc)?argv[++_I]:NULL)
+#define for_args _NEW_I if(argc>1) for(_I=1;_I<argc;_I++)
+#define if_arg(VAL) if(eq(argv[_I],VAL))
+#define this_arg argv[_I]
+#define next_arg ((_I+1<argc)?argv[++_I]:NULL)
/* ------------------------------------------------------------------- */
/* 6. C<<1 CGI and FASTCGI handling, updated 2008-01-16 by xCh. */
/* ------------------------------------------------------------------- */
#define USE_MODULE_CGI
#endif
#ifdef USE_MODULE_CGI
+#define cgi(MIME) /* _init_cgi */ if(MIME) printf("Content-type: %s\r\n\r\n",MIME);
//todo getcgi(VAR)
-//todo _init_cgi
+//todo define_init_cgi
//todo #define _QSTACK struct _QStack { char *Q; int _23; list(_QStack); } *_Qatom,*_Qstack=NULL;
#endif
/* ------------------------------------------------------------------- */