Merge pull request #482 from bebehei/execvp-errorhandler
Handle execvp error in open_browser
This commit is contained in:
		
						commit
						d25404d590
					
				
							
								
								
									
										13
									
								
								src/menu.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								src/menu.c
									
									
									
									
									
								
							| @ -115,10 +115,15 @@ void open_browser(const char *in) | |||||||
|                 if (browser_pid2) { |                 if (browser_pid2) { | ||||||
|                         exit(0); |                         exit(0); | ||||||
|                 } else { |                 } else { | ||||||
|                         char *browser_cmd = |                         char *browser_cmd = g_strconcat(settings.browser, " ", url, NULL); | ||||||
|                             string_append(settings.browser, url, " "); |  | ||||||
|                         char **cmd = g_strsplit(browser_cmd, " ", 0); |                         char **cmd = g_strsplit(browser_cmd, " ", 0); | ||||||
|                         execvp(cmd[0], cmd); |                         execvp(cmd[0], cmd); | ||||||
|  |                         // execvp won't return if it's successful
 | ||||||
|  |                         // so, if we're here, it's definitely an error
 | ||||||
|  |                         fprintf(stderr, "Warning: failed to execute '%s': %s\n", | ||||||
|  |                                         settings.browser, | ||||||
|  |                                         strerror(errno)); | ||||||
|  |                         exit(EXIT_FAILURE); | ||||||
|                 } |                 } | ||||||
|         } |         } | ||||||
| } | } | ||||||
| @ -238,6 +243,10 @@ void context_menu(void) | |||||||
|                         exit(EXIT_FAILURE); |                         exit(EXIT_FAILURE); | ||||||
|                 } |                 } | ||||||
|                 execvp(settings.dmenu_cmd[0], settings.dmenu_cmd); |                 execvp(settings.dmenu_cmd[0], settings.dmenu_cmd); | ||||||
|  |                 fprintf(stderr, "Warning: failed to execute '%s': %s\n", | ||||||
|  |                                 settings.dmenu, | ||||||
|  |                                 strerror(errno)); | ||||||
|  |                 exit(EXIT_FAILURE); | ||||||
|         } else { |         } else { | ||||||
|                 close(child_io[0]); |                 close(child_io[0]); | ||||||
|                 close(parent_io[1]); |                 close(parent_io[1]); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Nikos Tsipinakis
						Nikos Tsipinakis