forked from bonsai/harakit
		
	mm(1), mm.1: bring source in line with documentation
This commit is contained in:
		
							parent
							
								
									d74bc715cf
								
							
						
					
					
						commit
						135bf2a8eb
					
				| @ -56,7 +56,7 @@ writing to that particular output, and if there are more outputs specified, | |||||||
| continues, eventually exiting unsuccessfully. | continues, eventually exiting unsuccessfully. | ||||||
| .PP | .PP | ||||||
| On error mm prints a diagnostic message and exits with the appropriate | On error mm prints a diagnostic message and exits with the appropriate | ||||||
| sysexits.h(3) status.  | sysexits.h(3) status. | ||||||
| 
 | 
 | ||||||
| .SH BUGS | .SH BUGS | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										92
									
								
								src/mm.c
									
									
									
									
									
								
							
							
						
						
									
										92
									
								
								src/mm.c
									
									
									
									
									
								
							| @ -132,53 +132,57 @@ int main(int argc, char *argv[]){ | |||||||
| 
 | 
 | ||||||
| 	k = 0; | 	k = 0; | ||||||
| 
 | 
 | ||||||
| 	while((c = getopt(argc, argv, "aehi:no:u")) != -1) | 	if(argc > 0) | ||||||
| 		switch(c){ | 		program_name = argv[0]; | ||||||
| 		case 'a': /* "rb+" -> "ab" */ | 
 | ||||||
| 			files[1].mode[0] = 'a'; | 	if(argc > 1) | ||||||
| 			files[1].mode[2] = '\0'; | 		while((c = getopt(argc, argv, "aehi:no:u")) != -1) | ||||||
| 			break; | 			switch(c){ | ||||||
| 		case 'e': | 			case 'a': /* "rb+" -> "ab" */ | ||||||
| 			if(Files_append(&files[1], stderr, stderr_name) != NULL) | 				files[1].mode[0] = 'a'; | ||||||
|  | 				files[1].mode[2] = '\0'; | ||||||
| 				break; | 				break; | ||||||
| 			retval = oserr(argv[0], "-e"); | 			case 'e': | ||||||
| 			terminate; | 				if(Files_append(&files[1], stderr, stderr_name) != NULL) | ||||||
| 		case 'i': |  | ||||||
| 			if((strcmp(optarg, "-") == 0 && Files_append(&files[0], |  | ||||||
| 						stdin, stdin_name) != NULL) |  | ||||||
| 					|| Files_open(&files[0], optarg) != NULL) |  | ||||||
| 				break; |  | ||||||
| 			retval = oserr(argv[0], optarg); |  | ||||||
| 			terminate; |  | ||||||
| 		case 'o': |  | ||||||
| 			if((strcmp(optarg, "-") == 0 && Files_append(&files[1], |  | ||||||
| 						stdout, stdout_name) != NULL) |  | ||||||
| 					|| Files_open(&files[1], optarg) != NULL) |  | ||||||
| 				break; |  | ||||||
| 			/* does not exist, so try to create it */ |  | ||||||
| 			if(errno == ENOENT){ |  | ||||||
| 				files[1].mode = wharsh; |  | ||||||
| 				if(Files_open(&files[1], optarg) != NULL){ |  | ||||||
| 					files[1].mode = fmode[1]; |  | ||||||
| 					break; | 					break; | ||||||
|  | 				retval = oserr(argv[0], "-e"); | ||||||
|  | 				terminate; | ||||||
|  | 			case 'i': | ||||||
|  | 				if((strcmp(optarg, "-") == 0 && Files_append(&files[0], | ||||||
|  | 							stdin, stdin_name) != NULL) | ||||||
|  | 						|| Files_open(&files[0], optarg) != NULL) | ||||||
|  | 					break; | ||||||
|  | 				retval = oserr(argv[0], optarg); | ||||||
|  | 				terminate; | ||||||
|  | 			case 'o': | ||||||
|  | 				if((strcmp(optarg, "-") == 0 && Files_append(&files[1], | ||||||
|  | 							stdout, stdout_name) != NULL) | ||||||
|  | 						|| Files_open(&files[1], optarg) != NULL) | ||||||
|  | 					break; | ||||||
|  | 				/* does not exist, so try to create it */ | ||||||
|  | 				if(errno == ENOENT){ | ||||||
|  | 					files[1].mode = wharsh; | ||||||
|  | 					if(Files_open(&files[1], optarg) != NULL){ | ||||||
|  | 						files[1].mode = fmode[1]; | ||||||
|  | 						break; | ||||||
|  | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 				retval = oserr(argv[0], optarg); | ||||||
| 			retval = oserr(argv[0], optarg); | 				terminate; | ||||||
| 			terminate; | 			case 'n': | ||||||
| 		case 'n': | 				if(signal(SIGINT, SIG_IGN) != SIG_ERR) | ||||||
| 			if(signal(SIGINT, SIG_IGN) != SIG_ERR) | 					break; | ||||||
|  | 				retval = oserr(argv[0], "-n"); | ||||||
|  | 				terminate; | ||||||
|  | 			case 'u': | ||||||
|  | 				k = 1; | ||||||
| 				break; | 				break; | ||||||
| 			retval = oserr(argv[0], "-n"); | 			default: | ||||||
| 			terminate; | 				fprintf(stderr, "Usage: %s (-aenu) (-i [input])..." | ||||||
| 		case 'u': | 					" (-o [output])...\n", argv[0]); | ||||||
| 			k = 1; | 				retval = EX_USAGE; | ||||||
| 			break; | 				terminate; | ||||||
| 		default: | 			} | ||||||
| 			fprintf(stderr, "Usage: %s (-aenu) (-i [input])..." |  | ||||||
| 				" (-o [output])...\n", argv[0]); |  | ||||||
| 			retval = EX_USAGE; |  | ||||||
| 			terminate; |  | ||||||
| 		} |  | ||||||
| 
 | 
 | ||||||
| 	files[0].s += files[0].s == 0; | 	files[0].s += files[0].s == 0; | ||||||
| 	files[1].s += files[1].s == 0; | 	files[1].s += files[1].s == 0; | ||||||
| @ -202,6 +206,8 @@ int main(int argc, char *argv[]){ | |||||||
| 				if(putc(c, files[1].files[j]) == EOF){ | 				if(putc(c, files[1].files[j]) == EOF){ | ||||||
| 					/* notebook's full */ | 					/* notebook's full */ | ||||||
| 					retval = EX_IOERR; | 					retval = EX_IOERR; | ||||||
|  | 					fprintf(stderr, "%s: %s: %s\n", | ||||||
|  | 						program_name, files[1].names[j], strerror(errno)); | ||||||
| 					if(fclose(files[1].files[j]) == EOF) | 					if(fclose(files[1].files[j]) == EOF) | ||||||
| 						fprintf(stderr, "%s: %s: %s\n", | 						fprintf(stderr, "%s: %s: %s\n", | ||||||
| 							program_name, files[1].names[j], strerror(errno)); | 							program_name, files[1].names[j], strerror(errno)); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user