#ifndef LS_OPTIONS_H
#define LS_OPTIONS_H

typedef struct options
{
	int block_size;                                /* 512, 1024, etc. */
	int classify_special_files;                    /* -F */
	int directories_as_files_and_no_symlink_indir; /* -d */
	int include_hidden_files;                      /* -A */
	int include_all_files;                         /* -a */
	char long_format;                              /* -l, -n */
	int nonprint_mode;                             /* 'q', 'w' */
	int recurse;                                   /* -R */
	int reports_size_in_kilobytes;                 /* -k */
	int report_size_nicely;                        /* -h */
	int show_blocks_used;                          /* -s */
	int show_inode_number;                         /* -i */
	int sort_none;                                 /* -f */
	int sort_reverse;                              /* -r */
	int sort_size;                                 /* -S */
	int sort_time;                                 /* -t (-c, -u) */
	char time_field; /* 'm'=mtime, 'c'=ctime, 'u'=atime */
	int valid_arguments_passed;
} ls_options_t;

extern ls_options_t ls_options;

#define BLOCKSIZE_DEFAULT 512
#define HUMANIZE_BUFSIZ 5
/* 
 * Options that ls(1) appears to have for humanizing:
 * No space (e.g., 5k)
 * Round nicely by doing magic as far as I am concerned
 * Append the B for bytes when < 1 kb or so
 */
#define HUMANIZE_OPTIONS (HN_NOSPACE | HN_DECIMAL | HN_B)

#endif