diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-10-05 00:29:09 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-10-06 10:41:44 -0700 |
commit | 4b12f28ca453b038fdeca8e6ada106e0c157296b (patch) | |
tree | ae6c72da921baf80870ea57a5ec4ea9126fe201c /info.c | |
parent | 3e0ecb5ff6a95e1be8f22359048e4dfa85d165bc (diff) | |
download | subsurface-4b12f28ca453b038fdeca8e6ada106e0c157296b.tar.gz |
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 <dirk@hohndel.org>
Diffstat (limited to 'info.c')
-rw-r--r-- | info.c | 30 |
1 files changed, 23 insertions, 7 deletions
@@ -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 <stdio.h> @@ -19,12 +19,19 @@ #include <time.h> #include <ctype.h> #include <sys/time.h> +#if 0 #include <glib/gi18n.h> +#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; |