root/todo/tags/0.1.20/src/support.h

Revision 290, 1.7 kB (checked in by athomas, 4 years ago)

Initial import.

Line 
1 #ifndef SUPPORT_H__
2 #define SUPPORT_H__
3
4 #include <fstream>
5 #include <set>
6 #include <ctime>
7 #include <map>
8 #include "TodoDB.h"
9
10 using namespace std;
11
12 /* Options that can be set per run. */
13 struct Options {
14         Options();
15
16         enum Dir { Negative = -1, Equal = 0, Positive = +1 };
17
18         int verbose, purgeage;
19         bool mono, paranoid, global, summary, timeout, comment;
20         string text, database, globaldatabase, filename,
21                 dateformat;
22         map<string, string> format;
23
24         struct Filter {
25                 Filter();
26
27                 Dir prioritydir;
28                 Todo::Priority priority;
29                 Dir childrendir;
30                 bool children;
31                 Dir donedir;
32                 bool done;
33                 map<string, Dir> item;
34                 Dir show;
35                 Regex search;
36         } filter;
37
38         struct Sort {
39                 Dir dir;
40                 enum Key { None, Created, Completed, Text, Priority, Duration, Done } key;
41         };
42         vector<Sort> sort;
43
44         vector<string> index, loaders;
45         map<string, vector<string> > event;
46         Todo::Priority priority;
47         TodoDB::Mode mode;
48         typedef map<string, bool (*)(multiset<Todo> &out, string const &title)> Loader;
49         int backups, timeoutseconds, columns;
50 };
51
52 extern Options options;
53
54 // Turn a numeric priority into a symbolic one
55 string symbolisePriority(string sym);
56 string symbolisePriority(Todo::Priority sym);
57 Todo::Priority desymbolisePriority(string sym);
58
59 // text input
60 string readText(string const &prompt, string existing = "", bool nuke = false);
61 void addHistory(string text);
62
63 // Parse command line arguments
64 void parseArgs(TodoDB &todo, int argc, char const **argv);
65 vector<string> parseRC();
66
67 // Date stuff
68 time_t getCurrentDate();
69 string dateToHuman(time_t time);
70 string elapsedToHuman(time_t start, time_t end);
71
72 // Misc
73 /// Expand any $<identifier> type environment variables found in a string
74 string expandEnvars(string const &str);
75 #endif
Note: See TracBrowser for help on using the browser.