diff --git a/ChangeLog b/ChangeLog index 568e681..864483f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ Version 0.0.2: name changed to spOSMroute, since on there had been another OSMroute already. ============================================================================= +(2013-08-28): +- fixed: some search messages created a crash on 32bit systems. + +- fixed: saving of last position works now from inside the main menu. + (2013-08-01): - moving around the map works better. diff --git a/android/jni/Android.mk b/android/jni/Android.mk index d42f546..f7d15b7 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -34,7 +34,7 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) FREETYPE_SRC_PATH := freetype2/ LOCAL_MODULE := freetype2-static -LOCAL_CFLAGS := -DANDROID_NDK -DFT2_BUILD_LIBRARY=1 +LOCAL_CFLAGS := -DANDROID_NDK -DFT2_BUILD_LIBRARY=1 -DSPOSMROUTE LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/$(FREETYPE_SRC_PATH)/include \ $(LOCAL_PATH)/$(FREETYPE_SRC_PATH)/src diff --git a/android/jni/main.c b/android/jni/main.c index bbec75f..ed3fb5d 100644 --- a/android/jni/main.c +++ b/android/jni/main.c @@ -99,7 +99,6 @@ static int engine_init_display(struct engine* engine) { engine->width = w; engine->height = h; engine->state.angle = 0; - gfx_init (w, h); return 0; } @@ -321,9 +320,12 @@ void android_main(struct android_app* state) { app_init (0, NULL); // loop waiting for stuff to do. - while (1) { + while (app.status != APPSTATUS_quit) { main_event (); } + d_printf ("shutdown?"); + app_shutdown (); + exit (0); } diff --git a/base/system.c b/base/system.c index 7e663ad..973bfb0 100644 --- a/base/system.c +++ b/base/system.c @@ -103,14 +103,14 @@ void d_printf (char *fmt,...) { // return; #endif va_start (args, fmt); - vsnprintf (text1, 1024, fmt, args); + vsnprintf (text1, 1023, fmt, args); va_end (args); text1[1023] = 0; text2[1023] = 0; snprintf (fn, LEN_FILENAME, "%slogfile.txt", cfg.logpath); - snprintf (text2, 1024, "%-6d %s", (int)(time(NULL) - starttime), text1); + snprintf (text2, 1023, "%-6d %s", (int)(time(NULL) - starttime), text1); #ifndef COSMROUTE fprintf (stderr, "%s\n", text2); diff --git a/main/gui_mainmenu.c b/main/gui_mainmenu.c index 7080703..63320e3 100644 --- a/main/gui_mainmenu.c +++ b/main/gui_mainmenu.c @@ -1,4 +1,4 @@ -/* $Id: gui_mainmenu.c,v 1.12 2013/06/18 22:24:21 steffen Exp $ */ +/* $Id: gui_mainmenu.c,v 1.14 2013/08/28 09:42:46 steffen Exp $ */ /*************************************************************************** * gui_mainmenu.c * @@ -217,10 +217,7 @@ void gui_mainmenu_quit () { #ifdef _WINDOWSCE_ wince_taskbar (hMainWnd, TRUE); #endif - route_stop (); - map_save_all (); - config_save (); - exit (0); + app.status = APPSTATUS_quit; }; diff --git a/main/main.c b/main/main.c index f0325dc..08b3fa8 100644 --- a/main/main.c +++ b/main/main.c @@ -18,15 +18,11 @@ int app_init (int argc, char **argv) { app.status = APPSTATUS_nothing; config_init (); - d_printf ("************ cfg.last_scale:%f", cfg.last_scale); map_init (); - d_printf ("************ cfg.last_scale:%f", cfg.last_scale); #ifdef SPOSMROUTE draw_init (); - d_printf ("************ cfg.last_scale:%f", cfg.last_scale); fav_load (fav_getfilename ()); - d_printf ("************ cfg.last_scale:%f", cfg.last_scale); #endif return 0; }; diff --git a/mapsys/map_searchhash.c b/mapsys/map_searchhash.c index 5cca14b..af8b5bf 100644 --- a/mapsys/map_searchhash.c +++ b/mapsys/map_searchhash.c @@ -546,7 +546,7 @@ int map_search (char *name, struct map_search_data *data, int datasize) { d_printf ("map_search something went wrong. realstart < 0 name:%s", name); return 0; } - d_printf ("search blocksize:%lld blockstart:%lld realstart:%d j:%d", blocksize, blockstart, realstart, j, data->name); + d_printf ("search blocksize:%lld blockstart:%lld realstart:%lld j:%d", (long long int)blocksize, (long long int)blockstart, (long long int)realstart, j, data->name); if ((cmpres = strncasecmp (name, data->name, strlen (name)))> 0) { /* name is lager than data */ blocksize = blocksize - (realstart+j-blockstart); @@ -561,14 +561,16 @@ int map_search (char *name, struct map_search_data *data, int datasize) { /* find first data inside list, go backwards until no match found */ - d_printf ("found blockstart:%lld blocksize:%d, realstart:%ld text:'%-12s'", blockstart, blocksize, realstart, data->name); + d_printf ("found blockstart:%lld blocksize:%lld, realstart:%lld text:'%-12s'", (long long int)blockstart, + (long long int)blocksize, (long long int)realstart, data->name); j = 0; if (cmpres <= 0) { blockstart = realstart; - d_printf ("<=0 blockstart:%ld realstart:%ld name:%s", blockstart, realstart, name); + d_printf ("<=0 blockstart:%lld realstart:%lld name:%s", (long long int)blockstart, + (long long int)realstart, name); do { realstart = maps_readpos (blockstart, data, &j); - d_printf ("blockstart:%ld realstart:%ld data->name:%s", blockstart, realstart, data->name); + d_printf ("blockstart:%lld realstart:%lld data->name:%s", (long long int) blockstart, (long long int) realstart, data->name); blockstart = realstart-2; cmpres = strncasecmp (name, data->name, strlen (name)); d_printf (" cmpres:%d", cmpres); @@ -577,10 +579,10 @@ int map_search (char *name, struct map_search_data *data, int datasize) { } else if (cmpres > 0) { blockstart = realstart; - d_printf (">0 blockstart:%ld realstart:%ld name:%s", blockstart, realstart, name); + d_printf (">0 blockstart:%lld realstart:%lld name:%s", (long long int) blockstart, (long long int) realstart, name); do { realstart = maps_readpos (blockstart, data, &j); - d_printf ("blockstart:%ld realstart:%ld data->name:%s", blockstart, realstart, data->name); + d_printf ("blockstart:%lld realstart:%lld data->name:%s", (long long int)blockstart, (long long int)realstart, data->name); blockstart = realstart+j; cmpres = strncasecmp (name, data->name, strlen (name)); d_printf (" cmpres:%d", cmpres); @@ -593,7 +595,7 @@ int map_search (char *name, struct map_search_data *data, int datasize) { if (blockstart < 0) blockstart = 0; for (i = 0, k = 0; i < datasize*2 && k < datasize; i++) { realstart = maps_readpos (blockstart, data+k, &j); - d_printf ("create list: k:%d i:%d blockstart:%lld j:%d '%s'", k, i, blockstart, j, data[k].name); + d_printf ("create list: k:%d i:%d blockstart:%lld j:%d '%s'", k, i, (long long int)blockstart, j, data[k].name); if (realstart < 0) break; blockstart = realstart + j; if (strncasecmp (name, data[k].name, strlen (name)) == 0) k++; diff --git a/sdlgl/sdl_gfx.c b/sdlgl/sdl_gfx.c index c6c129a..9559d51 100644 --- a/sdlgl/sdl_gfx.c +++ b/sdlgl/sdl_gfx.c @@ -64,6 +64,8 @@ void gfx_init (int width, int height) { gfx_screensize.x = width; gfx_screensize.y = height; gfx_resize (width, height); + + font_init (); font = font_load ("FreeSans.ttf"); }; diff --git a/sdlgl/sdl_main.c b/sdlgl/sdl_main.c index 7cb3c50..0f2f464 100644 --- a/sdlgl/sdl_main.c +++ b/sdlgl/sdl_main.c @@ -262,7 +262,7 @@ int main (int argc, char **argv) { /* Initialize SDL for video output */ if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { - fprintf (stderr, "Unable to initialize SDL: %s\n", + fprintf (stderr, "Unable to initialize SDL: %s\n", SDL_GetError ()); exit (1); } @@ -276,7 +276,6 @@ int main (int argc, char **argv) { SDL_EnableUNICODE(1); app_init (argc, argv); - font_init (); gfx_init (RESOLUTION_X, RESOLUTION_Y); draw ();