| 
																	
																	
																	
																 | 
																@ -1,5 +1,6 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																/* See LICENSE file for copyright and license details. */ | 
																 | 
																 | 
																/* See LICENSE file for copyright and license details. */ | 
															
														
														
													
														
															
																 | 
																 | 
																#include <dirent.h> | 
																 | 
																 | 
																#include <dirent.h> | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#include <errno.h> | 
															
														
														
													
														
															
																 | 
																 | 
																#include <limits.h> | 
																 | 
																 | 
																#include <limits.h> | 
															
														
														
													
														
															
																 | 
																 | 
																#include <stdio.h> | 
																 | 
																 | 
																#include <stdio.h> | 
															
														
														
													
														
															
																 | 
																 | 
																#include <stdlib.h> | 
																 | 
																 | 
																#include <stdlib.h> | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -8,6 +9,8 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																static void lsx(const char *dir); | 
																 | 
																 | 
																static void lsx(const char *dir); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static int status = EXIT_SUCCESS; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																int | 
																 | 
																 | 
																int | 
															
														
														
													
														
															
																 | 
																 | 
																main(int argc, char *argv[]) { | 
																 | 
																 | 
																main(int argc, char *argv[]) { | 
															
														
														
													
														
															
																 | 
																 | 
																	int i; | 
																 | 
																 | 
																	int i; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -16,7 +19,7 @@ main(int argc, char *argv[]) { | 
															
														
														
													
														
															
																 | 
																 | 
																		lsx("."); | 
																 | 
																 | 
																		lsx("."); | 
															
														
														
													
														
															
																 | 
																 | 
																	else for(i = 1; i < argc; i++) | 
																 | 
																 | 
																	else for(i = 1; i < argc; i++) | 
															
														
														
													
														
															
																 | 
																 | 
																		lsx(argv[i]); | 
																 | 
																 | 
																		lsx(argv[i]); | 
															
														
														
													
														
															
																 | 
																 | 
																	return EXIT_SUCCESS; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	return status; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																void | 
																 | 
																 | 
																void | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -26,13 +29,15 @@ lsx(const char *dir) { | 
															
														
														
													
														
															
																 | 
																 | 
																	struct stat st; | 
																 | 
																 | 
																	struct stat st; | 
															
														
														
													
														
															
																 | 
																 | 
																	DIR *dp; | 
																 | 
																 | 
																	DIR *dp; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(!(dp = opendir(dir))) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		perror(dir); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																		return; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	while((d = readdir(dp))) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	for(dp = opendir(dir); dp && (d = readdir(dp)); errno = 0) | 
															
														
														
													
														
															
																 | 
																 | 
																		if(snprintf(buf, sizeof buf, "%s/%s", dir, d->d_name) < (int)sizeof buf | 
																 | 
																 | 
																		if(snprintf(buf, sizeof buf, "%s/%s", dir, d->d_name) < (int)sizeof buf | 
															
														
														
													
														
															
																 | 
																 | 
																		&& !stat(buf, &st) && S_ISREG(st.st_mode) && access(buf, X_OK) == 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		&& access(buf, X_OK) == 0 && stat(buf, &st) == 0 && S_ISREG(st.st_mode)) | 
															
														
														
													
														
															
																 | 
																 | 
																			puts(d->d_name); | 
																 | 
																 | 
																			puts(d->d_name); | 
															
														
														
													
														
															
																 | 
																 | 
																	closedir(dp); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(errno != 0) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		status = EXIT_FAILURE; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		perror(dir); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(dp) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		closedir(dp); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} |