aboutsummaryrefslogtreecommitdiff
path: root/util/fbautostart/src/entry.cc
diff options
context:
space:
mode:
authorPaul Tagliamonte <paultag@ubuntu.com>2011-09-04 21:05:01 (GMT)
committerPaul Tagliamonte <tag@loki.(none)>2011-09-24 15:48:48 (GMT)
commit44f4b0b601a63411095b53951b110af48b3cfbdc (patch)
tree8577c75ff0b7084a73c66602374163b447c97b50 /util/fbautostart/src/entry.cc
parentcc5c30c9cbdce2693d284c57ae4671017bf0660c (diff)
downloadfluxbox_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.cc63
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
34entry xdg_entry;
35
36void entry::leave_state() {}
37void entry::enter_state() {}
38
39void 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