summaryrefslogtreecommitdiff
path: root/apps/gui/gwps.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/gwps.c')
-rw-r--r--apps/gui/gwps.c40
1 files changed, 30 insertions, 10 deletions
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index 52242d856e..bd7591fb37 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -734,6 +734,8 @@ static void wps_clear(struct wps_data *data )
734 data->img[i].display = false; 734 data->img[i].display = false;
735 data->img[i].always_display = false; 735 data->img[i].always_display = false;
736 } 736 }
737 data->wps_sb_tag = false;
738 data->show_sb_on_wps = false;
737} 739}
738#else 740#else
739#define wps_clear(a) 741#define wps_clear(a)
@@ -764,7 +766,7 @@ bool wps_data_load(struct wps_data *wps_data,
764 wps_clear(wps_data); 766 wps_clear(wps_data);
765 strncpy(wps_data->format_buffer, buf, sizeof(wps_data->format_buffer)); 767 strncpy(wps_data->format_buffer, buf, sizeof(wps_data->format_buffer));
766 wps_data->format_buffer[sizeof(wps_data->format_buffer) - 1] = 0; 768 wps_data->format_buffer[sizeof(wps_data->format_buffer) - 1] = 0;
767 gui_wps_format(wps_data, NULL, 0); 769 gui_wps_format(wps_data);
768 return true; 770 return true;
769 } 771 }
770 else 772 else
@@ -798,16 +800,34 @@ bool wps_data_load(struct wps_data *wps_data,
798 800
799 if (fd >= 0) 801 if (fd >= 0)
800 { 802 {
801 int numread = read(fd, wps_data->format_buffer, 803 unsigned int start = 0;
802 sizeof(wps_data->format_buffer) - 1); 804
803 805 wps_reset(wps_data);
804 if (numread > 0)
805 {
806#ifdef HAVE_LCD_BITMAP 806#ifdef HAVE_LCD_BITMAP
807 wps_clear(wps_data); 807 wps_data->img_buf_ptr = wps_data->img_buf; /* where in image buffer */
808
809 wps_data->img_buf_free = IMG_BUFSIZE; /* free space in image buffer */
808#endif 810#endif
809 wps_data->format_buffer[numread] = 0; 811 while( ( read_line(fd, &wps_data->format_buffer[start],
810 gui_wps_format(wps_data, buf, bmpdirlen); 812 sizeof(wps_data->format_buffer)-start) ) > 0 )
813 {
814 if(!wps_data_preload_tags(wps_data,
815 &wps_data->format_buffer[start],
816 buf, bmpdirlen))
817 {
818 start += strlen(&wps_data->format_buffer[start]);
819
820 if (start < sizeof(wps_data->format_buffer) - 1)
821 {
822 wps_data->format_buffer[start++] = '\n';
823 wps_data->format_buffer[start] = 0;
824 }
825 }
826 }
827
828 if (start > 0)
829 {
830 gui_wps_format(wps_data);
811 } 831 }
812 832
813 close(fd); 833 close(fd);
@@ -853,7 +873,7 @@ bool wps_data_load(struct wps_data *wps_data,
853 } 873 }
854 wps_data->wps_loaded = true; 874 wps_data->wps_loaded = true;
855 875
856 return numread > 0; 876 return start > 0;
857 } 877 }
858 } 878 }
859 879