Readded file-type check at startup
This commit is contained in:
		
							parent
							
								
									8d4e3a57ab
								
							
						
					
					
						commit
						426edfb349
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| all: sxiv | all: sxiv | ||||||
| 
 | 
 | ||||||
| VERSION=git-20110404 | VERSION=git-20110405 | ||||||
| 
 | 
 | ||||||
| CC?=gcc | CC?=gcc | ||||||
| PREFIX?=/usr/local | PREFIX?=/usr/local | ||||||
|  | |||||||
							
								
								
									
										19
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								image.c
									
									
									
									
									
								
							| @ -56,6 +56,23 @@ void img_free(img_t* img) { | |||||||
| 	imlib_free_image(); | 	imlib_free_image(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | int img_check(const char *filename) { | ||||||
|  | 	Imlib_Image *im; | ||||||
|  | 
 | ||||||
|  | 	if (!filename) | ||||||
|  | 		return 0; | ||||||
|  | 
 | ||||||
|  | 	if ((im = imlib_load_image(filename))) { | ||||||
|  | 		imlib_context_set_image(im); | ||||||
|  | 		imlib_image_set_changes_on_disk(); | ||||||
|  | 		imlib_free_image(); | ||||||
|  | 		return 1; | ||||||
|  | 	} else { | ||||||
|  | 		warn("invalid file: %s", filename); | ||||||
|  | 		return 0; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| int img_load(img_t *img, const char *filename) { | int img_load(img_t *img, const char *filename) { | ||||||
| 	if (!img || !filename) | 	if (!img || !filename) | ||||||
| 		return 0; | 		return 0; | ||||||
| @ -66,7 +83,7 @@ int img_load(img_t *img, const char *filename) { | |||||||
| 		imlib_context_set_anti_alias(img->aa); | 		imlib_context_set_anti_alias(img->aa); | ||||||
| 		img->scalemode = options->scalemode; | 		img->scalemode = options->scalemode; | ||||||
| 	} else { | 	} else { | ||||||
| 		warn("not an image: %s", filename); | 		warn("invalid file: %s", filename); | ||||||
| 		imlib_context_set_image(im_invalid); | 		imlib_context_set_image(im_invalid); | ||||||
| 		imlib_context_set_anti_alias(0); | 		imlib_context_set_anti_alias(0); | ||||||
| 	} | 	} | ||||||
|  | |||||||
							
								
								
									
										11
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								main.c
									
									
									
									
									
								
							| @ -178,7 +178,7 @@ void update_title() { | |||||||
| 			             fileidx + 1, filecnt, (int) (img.zoom * 100.0), size, unit, | 			             fileidx + 1, filecnt, (int) (img.zoom * 100.0), size, unit, | ||||||
| 			             filenames[fileidx]); | 			             filenames[fileidx]); | ||||||
| 		} else { | 		} else { | ||||||
| 			n = snprintf(win_title, TITLE_LEN, "sxiv: [%d/%d] not an image: %s", | 			n = snprintf(win_title, TITLE_LEN, "sxiv: [%d/%d] invalid: %s", | ||||||
| 			             fileidx + 1, filecnt, filenames[fileidx]); | 			             fileidx + 1, filecnt, filenames[fileidx]); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -193,7 +193,13 @@ void update_title() { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int check_append(const char *filename) { | int check_append(const char *filename) { | ||||||
| 	if (filename && !access(filename, R_OK)) { | 	if (!filename) | ||||||
|  | 		return 0; | ||||||
|  | 
 | ||||||
|  | 	if (access(filename, R_OK)) { | ||||||
|  | 		warn("could not open file: %s", filename); | ||||||
|  | 		return 0; | ||||||
|  | 	} else if (img_check(filename)) { | ||||||
| 		if (fileidx == filecnt) { | 		if (fileidx == filecnt) { | ||||||
| 			filecnt *= 2; | 			filecnt *= 2; | ||||||
| 			filenames = (const char**) s_realloc(filenames, | 			filenames = (const char**) s_realloc(filenames, | ||||||
| @ -202,7 +208,6 @@ int check_append(const char *filename) { | |||||||
| 		filenames[fileidx++] = filename; | 		filenames[fileidx++] = filename; | ||||||
| 		return 1; | 		return 1; | ||||||
| 	} else { | 	} else { | ||||||
| 		warn("could not open file: %s", filename); |  | ||||||
| 		return 0; | 		return 0; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Bert
						Bert