From 4b12f28ca453b038fdeca8e6ada106e0c157296b Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 5 Oct 2013 00:29:09 -0700 Subject: First steps towards removing glib dependencies - remove the build flags and libraries from the Makefile / Configure.mk - remove the glib types (gboolean, gchar, gint64, gint) - comment out / hack around gettext - replace the glib file helper functions - replace g_ascii_strtod - replace g_build_filename - use environment variables instead of g_get_home_dir() & g_get_user_name() - comment out GPS string parsing (uses glib utf8 macros) This needs massive cleanup, but it's a snapshot of what I have right now, in case people want to look at it. Signed-off-by: Dirk Hohndel --- info.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) (limited to 'info.c') diff --git a/info.c b/info.c index 4e0c3cadb..18c72ccf9 100644 --- a/info.c +++ b/info.c @@ -2,7 +2,7 @@ * * UI toolkit independent logic used for the info frame * - * gboolean gps_changed(struct dive *dive, struct dive *master, const char *gps_text); + * bool gps_changed(struct dive *dive, struct dive *master, const char *gps_text); * void print_gps_coordinates(char *buffer, int len, int lat, int lon); * void save_equipment_data(struct dive *dive); * void update_equipment_data(struct dive *dive, struct dive *master); @@ -10,7 +10,7 @@ * const char *get_window_title(struct dive *dive); * char *evaluate_string_change(const char *newstring, char **textp, const char *master); * int text_changed(const char *old, const char *new); - * gboolean parse_gps_text(const char *gps_text, double *latitude, double *longitude); + * bool parse_gps_text(const char *gps_text, double *latitude, double *longitude); * int divename(char *buf, size_t size, struct dive *dive, char *trailer); */ #include @@ -19,12 +19,19 @@ #include #include #include +#if 0 #include +#else /* stupid */ +#define _(arg) arg +#define N_(arg) arg +#endif #include "dive.h" #include "display.h" #include "divelist.h" +#if USE_GTK_UI + /* old is NULL or a valid string, new is a valid string * NOTE: NULL and "" need to be treated as "unchanged" */ int text_changed(const char *old, const char *new) @@ -177,12 +184,12 @@ static int string_advance_cardinal(const char *text, const char *look) } /* this has to be done with UTF8 as people might want to enter the degree symbol */ -gboolean parse_gps_text(const char *gps_text, double *latitude, double *longitude) +bool parse_gps_text(const char *gps_text, double *latitude, double *longitude) { const char *text = gps_text; char *endptr; - gboolean south = FALSE; - gboolean west = FALSE; + bool south = FALSE; + bool west = FALSE; double parselat, parselong; gunichar degrees = UCS4_DEGREE; gunichar c; @@ -270,7 +277,7 @@ gboolean parse_gps_text(const char *gps_text, double *latitude, double *longitud return TRUE; } -gboolean gps_changed(struct dive *dive, struct dive *master, const char *gps_text) +bool gps_changed(struct dive *dive, struct dive *master, const char *gps_text) { double latitude, longitude; int latudeg, longudeg; @@ -295,13 +302,15 @@ gboolean gps_changed(struct dive *dive, struct dive *master, const char *gps_tex dive->longitude.udeg = longudeg; return TRUE; } - +#endif /* take latitude and longitude in udeg and print them in a human readable * form, without losing precision */ void print_gps_coordinates(char *buffer, int len, int lat, int lon) { unsigned int latdeg, londeg; +#if 0 double latmin, lonmin; +#endif char *lath, *lonh, dbuf_lat[32], dbuf_lon[32]; if (!lat && !lon) { @@ -314,11 +323,18 @@ void print_gps_coordinates(char *buffer, int len, int lat, int lon) lon = abs(lon); latdeg = lat / 1000000; londeg = lon / 1000000; +#if 0 latmin = (lat % 1000000) * 60.0 / 1000000.0; lonmin = (lon % 1000000) * 60.0 / 1000000.0; *dbuf_lat = *dbuf_lon = 0; g_ascii_formatd(dbuf_lat, sizeof(dbuf_lat), "%8.5f", latmin); g_ascii_formatd(dbuf_lon, sizeof(dbuf_lon), "%8.5f", lonmin); +#else + int ilatmin = (lat % 1000000) * 60; + int ilonmin = (lon % 1000000) * 60; + snprintf(dbuf_lat, sizeof(dbuf_lat), "%2d.%05d", ilatmin / 1000000, (ilatmin % 1000000) / 10); + snprintf(dbuf_lon, sizeof(dbuf_lon), "%2d.%05d", ilonmin / 1000000, (ilonmin % 1000000) / 10); +#endif if (!*dbuf_lat || !*dbuf_lon) { *buffer = 0; return; -- cgit v1.2.3-70-g09d2