Use 'goto fail' to remove code duplication
This commit is contained in:
		
							
								
								
									
										26
									
								
								history.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								history.c
									
									
									
									
									
								
							| @@ -65,26 +65,24 @@ saveHistory(Hist *hist, size_t size) | ||||
|     if (hist == NULL || hist->list == NULL) | ||||
| 	return; | ||||
|     tmpf = tmpfname(TMPF_HIST, NULL)->ptr; | ||||
|     if ((f = fopen(tmpf, "w")) == NULL) { | ||||
| 	/* FIXME: gettextize? */ | ||||
| 	disp_err_message("Can't open history", FALSE); | ||||
| 	return; | ||||
|     } | ||||
|     if ((f = fopen(tmpf, "w")) == NULL) | ||||
| 	goto fail; | ||||
|     for (item = hist->list->first; item && hist->list->nitem > size; | ||||
| 	 item = item->next) | ||||
| 	size++; | ||||
|     for (; item; item = item->next) | ||||
| 	fprintf(f, "%s\n", (char *)item->ptr); | ||||
|     if (fclose(f) == EOF) { | ||||
| 	/* FIXME: gettextize? */ | ||||
| 	disp_err_message("Can't save history", FALSE); | ||||
| 	return; | ||||
|     } | ||||
|     if (fclose(f) == EOF) | ||||
| 	goto fail; | ||||
|     rename_ret = rename(tmpf, rcFile(HISTORY_FILE)); | ||||
|     if (rename_ret != 0) { | ||||
| 	disp_err_message("Can't save history", FALSE); | ||||
| 	return; | ||||
|     } | ||||
|     if (rename_ret != 0) | ||||
| 	goto fail; | ||||
|  | ||||
|     return; | ||||
|  | ||||
| fail: | ||||
|     disp_err_message("Can't open history", FALSE); | ||||
|     return; | ||||
| } | ||||
| #endif				/* USE_HISTORY */ | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user