@ -3,53 +3,61 @@  
			
		
	
		
			
				
					 *  by  20 h   
			
		
	
		
			
				
					 */   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# ifndef __ ARG_H__  
			
		
	
		
			
				
					# define __ ARG_H__  
			
		
	
		
			
				
					# ifndef ARG_H__  
			
		
	
		
			
				
					# define ARG_H__  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					extern  char  * argv0 ;  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define USED(x)		((void)(x))  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					/* use main(int argc, char *argv[]) */  
			
		
	
		
			
				
					# define ARGBEGIN	for (argv0 = *argv, argv++, argc--;\  
			
		
	
		
			
				
										argv [ 0 ]  & &  argv [ 0 ] [ 1 ] \   
			
		
	
		
			
				
										& &  argv [ 0 ] [ 0 ]  = =  ' - ' ; \   
			
		
	
		
			
				
										argc - - ,  argv + + )  { \   
			
		
	
		
			
				
									char  _ argc; \   
			
		
	
		
			
				
									char  * * _ argv; \   
			
		
	
		
			
				
									int  brk ; \   
			
		
	
		
			
				
									char  argc_  ; \   
			
		
	
		
			
				
									char  * * argv_  ; \   
			
		
	
		
			
				
									int  brk_  ; \   
			
		
	
		
			
				
									if  ( argv [ 0 ] [ 1 ]  = =  ' - '  & &  argv [ 0 ] [ 2 ]  = =  ' \0 ' )  { \   
			
		
	
		
			
				
										argv + + ; \   
			
		
	
		
			
				
										argc - - ; \   
			
		
	
		
			
				
										break ; \   
			
		
	
		
			
				
									} \   
			
		
	
		
			
				
									for  ( brk  =  0 ,  argv [ 0 ] + + ,  _ argv=  argv ; \   
			
		
	
		
			
				
											argv [ 0 ] [ 0 ]  & &  ! brk ; \   
			
		
	
		
			
				
									for  ( brk_   =  0 ,  argv [ 0 ] + + ,  argv_   =  argv ; \   
			
		
	
		
			
				
											argv [ 0 ] [ 0 ]  & &  ! brk_  ; \   
			
		
	
		
			
				
											argv [ 0 ] + + )  { \   
			
		
	
		
			
				
										if  ( _ argv! =  argv ) \   
			
		
	
		
			
				
										if  ( argv_   ! =  argv ) \   
			
		
	
		
			
				
											break ; \   
			
		
	
		
			
				
										_argc  =  argv [ 0 ] [ 0 ] ; \   
			
		
	
		
			
				
										switch  ( _argc )   
			
		
	
		
			
				
										argc_  =  argv [ 0 ] [ 0 ] ; \   
			
		
	
		
			
				
										switch  ( argc_ )   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					/* Handles obsolete -NUM syntax */  
			
		
	
		
			
				
					# define ARGNUM				case '0':\  
			
		
	
		
			
				
										case  ' 1 ' : \   
			
		
	
		
			
				
										case  ' 2 ' : \   
			
		
	
		
			
				
										case  ' 3 ' : \   
			
		
	
		
			
				
										case  ' 4 ' : \   
			
		
	
		
			
				
										case  ' 5 ' : \   
			
		
	
		
			
				
										case  ' 6 ' : \   
			
		
	
		
			
				
										case  ' 7 ' : \   
			
		
	
		
			
				
										case  ' 8 ' : \   
			
		
	
		
			
				
										case  ' 9 '   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define ARGEND			}\  
			
		
	
		
			
				
									USED ( _argc ) ; \   
			
		
	
		
			
				
								} \   
			
		
	
		
			
				
								USED ( argv ) ; \   
			
		
	
		
			
				
								USED ( argc ) ;   
			
		
	
		
			
				
								}   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define ARGC()		argc_  
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define ARGC()		_argc  
			
		
	
		
			
				
					# define ARGNUMF(base)	(brk_ = 1, estrtol(argv[0], (base)))   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define EARGF(x)	((argv[0][1] == '\0' && argv[1] == NULL)?\  
			
		
	
		
			
				
									( ( x ) ,  abort ( ) ,  ( char  * ) 0 )  : \   
			
		
	
		
			
				
									( brk  =  1 ,  ( argv [ 0 ] [ 1 ]  ! =  ' \0 ' ) ? \   
			
		
	
		
			
				
									( brk_   =  1 ,  ( argv [ 0 ] [ 1 ]  ! =  ' \0 ' ) ? \   
			
		
	
		
			
				
										( & argv [ 0 ] [ 1 ] )  : \   
			
		
	
		
			
				
										( argc - - ,  argv + + ,  argv [ 0 ] ) ) )   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# define ARGF()		((argv[0][1] == '\0' && argv[1] == NULL)?\  
			
		
	
		
			
				
									( char  * ) 0  : \   
			
		
	
		
			
				
									( brk  =  1 ,  ( argv [ 0 ] [ 1 ]  ! =  ' \0 ' ) ? \   
			
		
	
		
			
				
									( brk_   =  1 ,  ( argv [ 0 ] [ 1 ]  ! =  ' \0 ' ) ? \   
			
		
	
		
			
				
										( & argv [ 0 ] [ 1 ] )  : \   
			
		
	
		
			
				
										( argc - - ,  argv + + ,  argv [ 0 ] ) ) )   
			
		
	
		
			
				
					
  
			
		
	
		
			
				
					# endif