1 /** \file lib/file-entry.h
2 * \brief Header: file entry definition
3 */
4
5 #ifndef MC__ILE_ENTRY_H
6 #define MC__ILE_ENTRY_H
7
8 #include <sys/types.h>
9 #include <sys/stat.h>
10
11 #include "lib/global.h" // include <glib.h>
12
13 /*** typedefs(not structures) and defined constants **********************************************/
14
15 /*** enums ***************************************************************************************/
16
17 /*** structures declarations (and typedefs of structures)*****************************************/
18
19 /* keys are set only during sorting */
20 typedef struct
21 {
22 // File name
23 GString *fname;
24 // File attributes
25 struct stat st;
26 // Key used for comparing names
27 char *name_sort_key;
28 // Key used for comparing extensions
29 char *extension_sort_key;
30
31 // Flags
32 struct
33 {
34 unsigned int marked : 1; // File marked in pane window
35 unsigned int link_to_dir : 1; // If this is a link, does it point to directory?
36 unsigned int stale_link : 1; // If this is a symlink and points to Charon's land
37 unsigned int dir_size_computed : 1; // Size of directory was computed with dirsizes_cmd
38 } f;
39 } file_entry_t;
40
41 /*** global variables defined in .c file *********************************************************/
42
43 /*** declarations of public functions ************************************************************/
44
45 /* --------------------------------------------------------------------------------------------- */
46 /*** inline functions ****************************************************************************/
47 /* --------------------------------------------------------------------------------------------- */
48
49 #endif