1 2 /** 3 * \file 4 * \brief Header: Utilities for VFS modules 5 * \author Miguel de Icaza 6 * \date 1995, 1996 7 */ 8 9 #ifndef MC_VFS_UTILVFS_H 10 #define MC_VFS_UTILVFS_H 11 12 #include <sys/stat.h> 13 14 #include "lib/global.h" 15 #include "path.h" 16 17 /*** typedefs(not structures) and defined constants **********************************************/ 18 19 /*** enums ***************************************************************************************/ 20 21 /** Bit flags for vfs_url_split() 22 * 23 * Modify parsing parameters according to flag meaning. 24 * @see vfs_url_split() 25 */ 26 typedef enum 27 { 28 URL_FLAGS_NONE = 0, 29 URL_USE_ANONYMOUS = 1, /**< if set, empty *user will contain NULL instead of current */ 30 URL_NOSLASH = 2 /**< if set, 'proto://' part in url is not searched */ 31 } vfs_url_flags_t; 32 33 /*** structures declarations (and typedefs of structures)*****************************************/ 34 35 /*** global variables defined in .c file *********************************************************/ 36 37 /*** declarations of public functions ************************************************************/ 38 39 int vfs_finduid (const char *name); 40 int vfs_findgid (const char *name); 41 42 vfs_path_element_t *vfs_url_split (const char *path, int default_port, vfs_url_flags_t flags); 43 int vfs_split_text (char *p); 44 45 int vfs_mkstemps (vfs_path_t ** pname_vpath, const char *prefix, const char *basename); 46 void vfs_die (const char *msg); 47 char *vfs_get_password (const char *msg); 48 49 char *vfs_get_local_username (void); 50 51 gboolean vfs_parse_filetype (const char *s, size_t * ret_skipped, mode_t * ret_type); 52 gboolean vfs_parse_fileperms (const char *s, size_t * ret_skipped, mode_t * ret_perms); 53 gboolean vfs_parse_filemode (const char *s, size_t * ret_skipped, mode_t * ret_mode); 54 gboolean vfs_parse_raw_filemode (const char *s, size_t * ret_skipped, mode_t * ret_mode); 55 56 void vfs_parse_ls_lga_init (void); 57 gboolean vfs_parse_ls_lga (const char *p, struct stat *s, char **filename, char **linkname, 58 size_t * filename_pos); 59 size_t vfs_parse_ls_lga_get_final_spaces (void); 60 gboolean vfs_parse_month (const char *str, struct tm *tim); 61 int vfs_parse_filedate (int idx, time_t * t); 62 63 /*** inline functions ****************************************************************************/ 64 #endif 65