mirror of
				https://github.com/flynx/argv.js.git
				synced 2025-10-31 19:50:08 +00:00 
			
		
		
		
	small rewrite...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									5c9a7be4a1
								
							
						
					
					
						commit
						5aaae8493d
					
				
							
								
								
									
										21
									
								
								argv.js
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								argv.js
									
									
									
									
									
								
							| @ -699,33 +699,30 @@ object.Constructor('Parser', { | |||||||
| 			// NOTE: opts and commands do not follow the same path here 
 | 			// NOTE: opts and commands do not follow the same path here 
 | ||||||
| 			// 		because options if unidentified need to be split into
 | 			// 		because options if unidentified need to be split into
 | ||||||
| 			// 		single letter options and commands to not...
 | 			// 		single letter options and commands to not...
 | ||||||
| 			var type = opt_pattern.test(arg) ? | 			var [type, dfl] = opt_pattern.test(arg) ? | ||||||
| 					'opt' | 					['opt', parsed.optionPrefix +'*'] | ||||||
| 				: parsed.isCommand(arg) ? | 				: parsed.isCommand(arg) ? | ||||||
| 					'cmd' | 					['cmd', parsed.commandPrefix +'*'] | ||||||
| 				: 'unhandled' | 				: ['unhandled'] | ||||||
| 			// options / commands...
 | 			// options / commands...
 | ||||||
| 			if(type != 'unhandled'){ | 			if(type != 'unhandled'){ | ||||||
| 				// quote '-*' / '@*'...
 | 				// quote '-*' / '@*'...
 | ||||||
| 				arg = arg.replace(/^(.)\*$/, '$1\\*') | 				arg = arg.replace(/^(.)\*$/, '$1\\*') | ||||||
| 				// get handler...
 | 				// get handler...
 | ||||||
| 				var handler = parsed.handler(arg)[1] | 				var handler = parsed.handler(arg)[1] | ||||||
| 					// handle merged options
 | 					// handle merged options...
 | ||||||
| 					// NOTE: if successful returns array...
 | 					// NOTE: we replace arg here...
 | ||||||
| 					|| (type == 'opt'  | 					|| (type == 'opt'  | ||||||
| 						&& parsed.splitOptions | 						&& parsed.splitOptions | ||||||
| 						&& splitArgs(arg, rest)) | 						// XXX a tad ugly...
 | ||||||
|  | 						&& (([arg, handler] = splitArgs(arg, rest)), handler)) | ||||||
| 					// dynamic or error...
 | 					// dynamic or error...
 | ||||||
| 					|| parsed.handler(type == 'opt' ? '-*' : '@*')[1] | 					|| parsed.handler(dfl)[1] | ||||||
| 				// no handler found and '-*' or '@*' not defined...
 | 				// no handler found and '-*' or '@*' not defined...
 | ||||||
| 				if(handler == null){ | 				if(handler == null){ | ||||||
| 					handleError('unknown', arg, rest) | 					handleError('unknown', arg, rest) | ||||||
| 					parsed.printError('unknown '+(type == 'opt' ? 'option:' : 'command:'), arg) | 					parsed.printError('unknown '+(type == 'opt' ? 'option:' : 'command:'), arg) | ||||||
| 					return module.ERROR } | 					return module.ERROR } | ||||||
| 				// normalize output of splitArgs(..)
 |  | ||||||
| 				;[arg, handler] = handler instanceof Array ? |  | ||||||
| 					handler |  | ||||||
| 					: [arg, handler] |  | ||||||
| 
 | 
 | ||||||
| 				// mark handler...
 | 				// mark handler...
 | ||||||
| 				;(handler.env || 'default' in handler) | 				;(handler.env || 'default' in handler) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user