From bd2b24fbcaf89d827610f5371a0c13c3db1ae38b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 10 Aug 2010 11:41:48 -0500 Subject: Writing a small little function to generate the ID. --- src/generate-id.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/generate-id.c (limited to 'src/generate-id.c') diff --git a/src/generate-id.c b/src/generate-id.c new file mode 100644 index 0000000..95a4bee --- /dev/null +++ b/src/generate-id.c @@ -0,0 +1,58 @@ +/* +Quick litte lack to generate the ordering ID. + +Copyright 2010 Canonical Ltd. + +Authors: + Ted Gould + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU General Public License version 3, as published +by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranties of +MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR +PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +*/ + +struct ordering_id_struct { + gchar category; + gchar first; + gchar second; + gchar third; +}; + +union ordering_id_union_t { + guint32 id; + struct ordering_id_struct str; +}; + +guint32 +generate_id (const gchar category, const gchar * id) +{ + union ordering_id_union_t u; + + u.str.category = category; + + u.str.first = 0; + u.str.second = 0; + u.str.third = 0; + + if (id != NULL) { + if (id[0] != '\0') { + u.str.first = id[0]; + if (id[1] != '\0') { + u.str.second = id[1]; + if (id[2] != '\0') { + u.str.third = id[2]; + } + } + } + } + + return u.id; +} -- cgit v1.2.3