forked from bonsai/harakit
		
	remove libfileis(3)
This commit is contained in:
		
							parent
							
								
									47f673ef45
								
							
						
					
					
						commit
						de304b7ef7
					
				@ -1,63 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2023 DTB <trinity@trinity.moe>
 | 
			
		||||
 * SPDX-License-Identifier: AGPL-3.0-or-later
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU Affero General Public License as published by the Free
 | 
			
		||||
 * Software Foundation, either version 3 of the License, or (at your option) any
 | 
			
		||||
 * later version.
 | 
			
		||||
 * 
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 | 
			
		||||
 * details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
 * along with this program. If not, see https://www.gnu.org/licenses/.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "libfileis.h"
 | 
			
		||||
 | 
			
		||||
#include <unistd.h> /* access(3), F_OK, R_OK, W_OK, X_OK */
 | 
			
		||||
 | 
			
		||||
int f_executable(char *path){	return access(path, X_OK) == 0; } /* test -x */
 | 
			
		||||
int f_exists(char *path){	return access(path, F_OK) == 0; } /* test -e */
 | 
			
		||||
int f_readable(char *path){	return access(path, R_OK) == 0; } /* test -r */
 | 
			
		||||
int f_writeable(char *path){	return access(path, W_OK) == 0; } /* test -w */
 | 
			
		||||
 | 
			
		||||
#include <sys/stat.h> /* lstat(3), struct stat, S_ISBLK, S_ISCHR, S_ISDIR,
 | 
			
		||||
                       * S_ISFIFO, S_ISGID, S_ISREG, S_ISLNK, S_ISSOCK,
 | 
			
		||||
                       * S_ISUID, S_ISVTX */
 | 
			
		||||
 | 
			
		||||
static struct stat buf;
 | 
			
		||||
 | 
			
		||||
int f_blockspecial(char *path){ /* test -b */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISBLK(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_charspecial(char *path){ /* test -c */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISCHR(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_directory(char *path){ /* test -d */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISDIR(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_fifospecial(char *path){ /* test -p */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISFIFO(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_gid(char *path){ /* test -g */
 | 
			
		||||
	return lstat(path, &buf) != -1 && (buf.st_mode & S_ISGID);
 | 
			
		||||
}
 | 
			
		||||
int f_regular(char *path){ /* test -f */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISREG(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_socket(char *path){ /* test -S */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISSOCK(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_sticky(char *path){ /* test -k */
 | 
			
		||||
	return lstat(path, &buf) != -1 && (buf.st_mode & S_ISVTX);
 | 
			
		||||
}
 | 
			
		||||
int f_symlink(char *path){ /* test -h; test -L */
 | 
			
		||||
	return lstat(path, &buf) != -1 && S_ISLNK(buf.st_mode);
 | 
			
		||||
}
 | 
			
		||||
int f_uid(char *path){ /* test -u */
 | 
			
		||||
	return lstat(path, &buf) != -1 && (buf.st_mode & S_ISUID);
 | 
			
		||||
}
 | 
			
		||||
@ -1,62 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright (c) 2023 DTB <trinity@trinity.moe>
 | 
			
		||||
 * SPDX-License-Identifier: AGPL-3.0-or-later
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify it under
 | 
			
		||||
 * the terms of the GNU Affero General Public License as published by the Free
 | 
			
		||||
 * Software Foundation, either version 3 of the License, or (at your option) any
 | 
			
		||||
 * later version.
 | 
			
		||||
 * 
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but WITHOUT
 | 
			
		||||
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | 
			
		||||
 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 | 
			
		||||
 * details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU Affero General Public License
 | 
			
		||||
 * along with this program. If not, see https://www.gnu.org/licenses/.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* libfileis functions return true if the condition is true and false if the
 | 
			
		||||
 * condition is false. Returned values are 0 or 1 only. */
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a block special file. */
 | 
			
		||||
	int f_blockspecial(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a character special file. */
 | 
			
		||||
	int f_charspecial(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a directory. */
 | 
			
		||||
	int f_directory(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is executable. */
 | 
			
		||||
	int f_executable(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists (regardless of type). */
 | 
			
		||||
	int f_exists(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a named pipe (FIFO). */
 | 
			
		||||
	int f_fifospecial(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and its set group ID flag is set. */
 | 
			
		||||
	int f_gid(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is readable. */
 | 
			
		||||
	int f_readable(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a regular file. */
 | 
			
		||||
	int f_regular(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a socket. */
 | 
			
		||||
	int f_socket(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and its sticky bit is set. */
 | 
			
		||||
	int f_sticky(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is a symbolic link. */
 | 
			
		||||
	int f_symlink(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and its set user ID flag is set. */
 | 
			
		||||
	int f_uid(char *path);
 | 
			
		||||
 | 
			
		||||
/* True if file exists and is writeable. */
 | 
			
		||||
	int f_writeable(char *path);
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user