diff options
author | Paul Tagliamonte <paultag@ubuntu.com> | 2011-09-04 21:05:01 (GMT) |
---|---|---|
committer | Paul Tagliamonte <tag@loki.(none)> | 2011-09-24 15:48:48 (GMT) |
commit | 44f4b0b601a63411095b53951b110af48b3cfbdc (patch) | |
tree | 8577c75ff0b7084a73c66602374163b447c97b50 /util/fbautostart/src/entry.cc | |
parent | cc5c30c9cbdce2693d284c57ae4671017bf0660c (diff) | |
download | fluxbox_paul-44f4b0b601a63411095b53951b110af48b3cfbdc.zip fluxbox_paul-44f4b0b601a63411095b53951b110af48b3cfbdc.tar.bz2 |
Importing xdg-state stuff that I was prototyping.
I'm not using ragel because I just plain don't like it.
Sorry ragel users, I'm sure it's great, but I really don't like
the syntax at all.
Not saying this is better, just saying it's understandable.
Diffstat (limited to 'util/fbautostart/src/entry.cc')
-rw-r--r-- | util/fbautostart/src/entry.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/util/fbautostart/src/entry.cc b/util/fbautostart/src/entry.cc new file mode 100644 index 0000000..fd5a4ec --- /dev/null +++ b/util/fbautostart/src/entry.cc | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011, Paul Tagliamonte | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
5 | * of this software and associated documentation files (the "Software"), to deal | ||
6 | * in the Software without restriction, including without limitation the rights | ||
7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
8 | * copies of the Software, and to permit persons to whom the Software is | ||
9 | * furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
20 | * THE SOFTWARE. | ||
21 | */ | ||
22 | |||
23 | #include <iostream> | ||
24 | |||
25 | #include "key.hh" | ||
26 | #include "entry.hh" | ||
27 | |||
28 | #include "group.hh" | ||
29 | #include "comment.hh" | ||
30 | #include "invalid.hh" | ||
31 | #include "machine.hh" | ||
32 | #include "exceptions.hh" | ||
33 | |||
34 | entry xdg_entry; | ||
35 | |||
36 | void entry::leave_state() {} | ||
37 | void entry::enter_state() {} | ||
38 | |||
39 | void entry::process( char c ) { | ||
40 | switch ( c ) { | ||
41 | case '#': | ||
42 | /* Lines that begin with # are comments*/ | ||
43 | xdg_machine_next_state = &xdg_comment; | ||
44 | break; | ||
45 | case '=': | ||
46 | /* We've got no key, this is an invalid transition */ | ||
47 | xdg_machine_next_state = &xdg_invalid; | ||
48 | break; | ||
49 | case '[': | ||
50 | /* Lines that begin with [ are groups */ | ||
51 | xdg_machine_next_state = &xdg_group; | ||
52 | break; | ||
53 | case '\n': | ||
54 | /* Let's just eat newlines */ | ||
55 | break; | ||
56 | default: | ||
57 | /* Anything else is a key */ | ||
58 | xdg_machine_next_state = &xdg_key; | ||
59 | throw new incomplete_process(); | ||
60 | break; | ||
61 | } | ||
62 | } | ||
63 | |||