25 lines
		
	
	
		
			613 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			613 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
										 /*******************************
							 | 
						||
| 
								 | 
							
										 *	   OPTION LISTS		*
							 | 
						||
| 
								 | 
							
										 *******************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define OPT_BOOL	(0)		/* types */
							 | 
						||
| 
								 | 
							
								#define OPT_INT		(1)
							 | 
						||
| 
								 | 
							
								#define OPT_STRING	(2)
							 | 
						||
| 
								 | 
							
								#define OPT_ATOM	(3)
							 | 
						||
| 
								 | 
							
								#define OPT_TERM	(4)		/* arbitrary term */
							 | 
						||
| 
								 | 
							
								#define OPT_LONG	(5)
							 | 
						||
| 
								 | 
							
								#define OPT_NATLONG	(6)		/* > 0 */
							 | 
						||
| 
								 | 
							
								#define OPT_TYPE_MASK	0xff
							 | 
						||
| 
								 | 
							
								#define OPT_INF		0x100		/* allow 'inf' */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define OPT_ALL		0x1		/* flags */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{ atom_t	name;			/* Name of option */
							 | 
						||
| 
								 | 
							
								  int		type;			/* Type of option */
							 | 
						||
| 
								 | 
							
								} opt_spec, *OptSpec;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								extern bool scan_options(term_t options, int flags, atom_t optype,
							 | 
						||
| 
								 | 
							
											 const opt_spec *specs, ...);
							 | 
						||
| 
								 | 
							
								
							 |