00001 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ 00002 /* 00003 heraia.h 00004 heraia - an hexadecimal file editor and analyser based on ghex 00005 00006 (C) Copyright 2005 - 2011 Olivier Delhomme 00007 e-mail : heraia@delhomme.org 00008 URL : http://heraia.tuxfamily.org 00009 00010 This program is free software; you can redistribute it and/or modify 00011 it under the terms of the GNU General Public License as published by 00012 the Free Software Foundation; either version 2, or (at your option) 00013 any later version. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 00023 /** 00024 * @file heraia.h 00025 * heraia's header file. 00026 */ 00027 #ifndef _HERAIA_H_ 00028 #define _HERAIA_H_ 00029 00030 /** 00031 * @def HERAIA_DATE 00032 * defines heraia's creation date 00033 * 00034 * @def HERAIA_AUTHORS 00035 * defines heraia's main authors 00036 * 00037 * @def HERAIA_LICENSE 00038 * defines heraia's license (at least GPL v2) 00039 * 00040 * @def HERAIA_VERSION 00041 * defines heraia's current version and release date of this version 00042 * (00.00.20XX means a development version) 00043 */ 00044 #define HERAIA_AUTHORS "Olivier Delhomme, Sébastien TRICAUD, Grégory AUDET" 00045 #define HERAIA_DATE "20 02 2005" 00046 #define HERAIA_LICENSE N_("GPL v2 or later") 00047 #define HERAIA_VERSION "0.1.7 (02.05.2011)" 00048 00049 /** 00050 * @def NO_TESTS 00051 * defines that no tests should be done (this is the default behaviour) 00052 * 00053 * @def COVERAGE_TESTS 00054 * In order to do some coverage tests. 00055 */ 00056 #define NO_TESTS 0 00057 #define COVERAGE_TESTS 1 00058 #define LOADING_TESTS 2 00059 00060 /** 00061 * @struct Options 00062 * Structure Options gives a way to store program options passed from the 00063 * command line. 00064 * - char *filename is the filename to open (should be a list of filenames) 00065 * - char usage is there to know which kind of usage message we want to display 00066 */ 00067 typedef struct 00068 { 00069 GList *filenames; /**< the filename to open */ 00070 gboolean usage; /**< to know if we displayed the usage message */ 00071 gint8 tests; /**< to know if the users wants to do self tests */ 00072 } Options; 00073 00074 static struct option const long_options[] = 00075 { 00076 {"version", no_argument, NULL, 'v'}, /**< displays version informations */ 00077 {"help", no_argument, NULL, 'h'}, /**< displays help (usage) */ 00078 {"tests", optional_argument, NULL, 't'}, /**< self tests */ 00079 {NULL, 0, NULL, 0} 00080 }; 00081 00082 extern heraia_struct_t *get_main_struct(void); 00083 00084 #endif /* _HERAIA_H_ */