option_parser: Simplify backslash code.
Treating unrecognized sequences as invalid means that the backslash itself is never propagated; so we can hoist the handling of it outside of the switch; simplifying the code a bit.
This commit is contained in:
		
							parent
							
								
									446d6afc58
								
							
						
					
					
						commit
						b83363e351
					
				@ -198,14 +198,12 @@ char *clean_value(char *value, int line_num)
 | 
				
			|||||||
                        in_quote = !in_quote;
 | 
					                        in_quote = !in_quote;
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                case '\\':
 | 
					                case '\\':
 | 
				
			||||||
                        switch (unparsed[1]) {
 | 
					                        memmove(unparsed, unparsed + 1, strlen(unparsed));
 | 
				
			||||||
 | 
					                        switch (*unparsed) {
 | 
				
			||||||
                        case '\\':
 | 
					                        case '\\':
 | 
				
			||||||
                        case '"':
 | 
					                        case '"':
 | 
				
			||||||
                                memmove(unparsed, unparsed + 1, strlen(unparsed));
 | 
					 | 
				
			||||||
                                unparsed++;
 | 
					 | 
				
			||||||
                                break;
 | 
					                                break;
 | 
				
			||||||
                        default:
 | 
					                        default:
 | 
				
			||||||
                                unparsed++;
 | 
					 | 
				
			||||||
                                fprintf(stderr,
 | 
					                                fprintf(stderr,
 | 
				
			||||||
                                       "Warning: invalid config file at line %d\n",
 | 
					                                       "Warning: invalid config file at line %d\n",
 | 
				
			||||||
                                       line_num);
 | 
					                                       line_num);
 | 
				
			||||||
@ -214,6 +212,7 @@ char *clean_value(char *value, int line_num)
 | 
				
			|||||||
                                       *unparsed);
 | 
					                                       *unparsed);
 | 
				
			||||||
                                return NULL;
 | 
					                                return NULL;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					                        unparsed++;
 | 
				
			||||||
                        break;
 | 
					                        break;
 | 
				
			||||||
                case '#':
 | 
					                case '#':
 | 
				
			||||||
                case ';':
 | 
					                case ';':
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user