From 646de3f88f718fdf5c3885b5c12e823c8ce0b00e Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Wed, 4 Jan 2012 14:36:53 +0300 Subject: [PATCH] Check assert.h header and use it conditionally. assert(3) should be replaced with g_assert(). Signed-off-by: Andrew Borodin --- configure.ac | 1 + lib/global.h | 2 ++ lib/strutil.h | 4 ++++ src/editor/editcmd.c | 6 ++++++ src/editor/editkeys.c | 1 - src/viewer/coord_cache.c | 4 ++++ src/viewer/datasource.c | 33 +++++++++++++++++++++++++++++---- src/viewer/display.c | 4 ++++ src/viewer/growbuf.c | 13 +++++++++++++ src/viewer/hex.c | 2 ++ src/viewer/inlines.h | 8 ++++++++ src/viewer/mcviewer.c | 2 ++ src/viewer/move.c | 6 ++++++ 13 files changed, 81 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index aff83a05e..b0b3c40a9 100644 --- a/configure.ac +++ b/configure.ac @@ -149,6 +149,7 @@ AC_CHECK_HEADERS([unistd.h string.h memory.h limits.h malloc.h \ AC_HEADER_TIME AC_HEADER_DIRENT +AC_HEADER_ASSERT dnl Missing structure components AC_CHECK_MEMBERS([struct stat.st_blksize, struct stat.st_rdev]) diff --git a/lib/global.h b/lib/global.h index 95a979886..ad9337368 100644 --- a/lib/global.h +++ b/lib/global.h @@ -137,8 +137,10 @@ #else #define NDEBUG #endif +#ifdef HAVE_ASSERT_H #include #endif +#endif #define MC_ERROR g_quark_from_static_string (PACKAGE) diff --git a/lib/strutil.h b/lib/strutil.h index 87c24baec..0f9e94915 100644 --- a/lib/strutil.h +++ b/lib/strutil.h @@ -5,7 +5,9 @@ #include #include +#ifdef HAVE_ASSERT_H #include /* assert() */ +#endif /* Header file for strutil.c, strutilascii.c, strutil8bit.c, strutilutf8.c. * There are two sort of functions: @@ -558,7 +560,9 @@ str_move (char *dest, const char *src) { size_t n; +#ifdef HAVE_ASSERT_H assert (dest <= src); +#endif n = strlen (src) + 1; /* + '\0' */ diff --git a/src/editor/editcmd.c b/src/editor/editcmd.c index af98b97ed..89a74a129 100644 --- a/src/editor/editcmd.c +++ b/src/editor/editcmd.c @@ -34,7 +34,9 @@ #include +#ifdef HAVE_ASSERT_H #include +#endif #include #include @@ -355,7 +357,9 @@ edit_save_file (WEdit * edit, const char *filename) if (this_save_mode == EDIT_DO_BACKUP) { +#ifdef HAVE_ASSERT_H assert (option_backup_ext != NULL); +#endif tmp = g_strconcat (real_filename, option_backup_ext, (char *) NULL); if (mc_rename (real_filename, tmp) == -1) { @@ -1401,7 +1405,9 @@ menu_save_mode_cmd (void) size_t maxlen = 0; size_t w0, w1, b_len, w3; +#ifdef HAVE_ASSERT_H assert (option_backup_ext != NULL); +#endif /* OK/Cancel buttons */ w0 = str_term_width1 (_(widgets[0].u.button.text)) + 3; diff --git a/src/editor/editkeys.c b/src/editor/editkeys.c index f4c34a859..8d04958b7 100644 --- a/src/editor/editkeys.c +++ b/src/editor/editkeys.c @@ -30,7 +30,6 @@ #include -#include #include #include #include diff --git a/src/viewer/coord_cache.c b/src/viewer/coord_cache.c index 9e8a9638f..55dd04b8e 100644 --- a/src/viewer/coord_cache.c +++ b/src/viewer/coord_cache.c @@ -147,7 +147,9 @@ mcview_ccache_find (mcview_t * view, const coord_cache_entry_t * coord, cmp_func size_t base = 0; size_t limit = view->coord_cache->size; +#ifdef HAVE_ASSERT_H assert (limit != 0); +#endif while (limit > 1) { @@ -214,7 +216,9 @@ mcview_ccache_dump (mcview_t * view) guint i; const coord_cache_t *cache = view->coord_cache; +#ifdef HAVE_ASSERT_H assert (cache != NULL); +#endif filesize = mcview_get_filesize (view); diff --git a/src/viewer/datasource.c b/src/viewer/datasource.c index a43b59dbc..5cd31e7ea 100644 --- a/src/viewer/datasource.c +++ b/src/viewer/datasource.c @@ -80,7 +80,9 @@ static void mcview_set_datasource_stdio_pipe (mcview_t * view, FILE * fp) { +#ifdef HAVE_ASSERT_H assert (fp != NULL); +#endif view->datasource = DS_STDIO_PIPE; view->ds_stdio_pipe = fp; @@ -112,7 +114,9 @@ mcview_get_filesize (mcview_t * view) case DS_STRING: return view->ds_string_len; default: +#ifdef HAVE_ASSERT_H assert (!"Unknown datasource type"); +#endif return 0; } } @@ -135,8 +139,9 @@ mcview_update_filesize (mcview_t * view) char * mcview_get_ptr_file (mcview_t * view, off_t byte_index) { +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_FILE); - +#endif mcview_file_load_data (view, byte_index); if (mcview_already_loaded (view->ds_file_offset, byte_index, view->ds_file_datalen)) return (char *) (view->ds_file_data + (byte_index - view->ds_file_offset)); @@ -148,7 +153,9 @@ mcview_get_ptr_file (mcview_t * view, off_t byte_index) char * mcview_get_ptr_string (mcview_t * view, off_t byte_index) { +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_STRING); +#endif if (byte_index < (off_t) view->ds_string_len) return (char *) (view->ds_string_data + byte_index); return NULL; @@ -232,7 +239,9 @@ mcview_get_utf (mcview_t * view, off_t byte_index, int *char_width, gboolean * r gboolean mcview_get_byte_string (mcview_t * view, off_t byte_index, int *retval) { +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_STRING); +#endif if (byte_index < (off_t) view->ds_string_len) { if (retval) @@ -249,10 +258,14 @@ mcview_get_byte_string (mcview_t * view, off_t byte_index, int *retval) gboolean mcview_get_byte_none (mcview_t * view, off_t byte_index, int *retval) { - assert (view->datasource == DS_NONE); (void) &view; (void) byte_index; - if (retval) + +#ifdef HAVE_ASSERT_H + assert (view->datasource == DS_NONE); +#endif + + if (retval != NULL) *retval = -1; return FALSE; } @@ -263,8 +276,13 @@ void mcview_set_byte (mcview_t * view, off_t offset, byte b) { (void) &b; + +#ifndef HAVE_ASSERT_H + (void) offset; +#else assert (offset < mcview_get_filesize (view)); assert (view->datasource == DS_FILE); +#endif view->ds_file_datalen = 0; /* just force reloading */ } @@ -278,7 +296,9 @@ mcview_file_load_data (mcview_t * view, off_t byte_index) ssize_t res; size_t bytes_read; +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_FILE); +#endif if (mcview_already_loaded (view->ds_file_offset, byte_index, view->ds_file_datalen)) return; @@ -356,7 +376,10 @@ mcview_close_datasource (mcview_t * view) view->ds_string_data = NULL; break; default: - assert (!"Unknown datasource type"); +#ifdef HAVE_ASSERT_H + assert (!"Unknown datasource type") +#endif + ; } view->datasource = DS_NONE; } @@ -426,7 +449,9 @@ mcview_load_command_output (mcview_t * view, const char *command) void mcview_set_datasource_vfs_pipe (mcview_t * view, int fd) { +#ifdef HAVE_ASSERT_H assert (fd != -1); +#endif view->datasource = DS_VFS_PIPE; view->ds_vfs_pipe = fd; diff --git a/src/viewer/display.c b/src/viewer/display.c index bb09ecb55..76e54b514 100644 --- a/src/viewer/display.c +++ b/src/viewer/display.c @@ -309,7 +309,9 @@ mcview_update_bytes_per_line (mcview_t * view) bytes = 4; else bytes = 4 * ((cols - 8) / ((cols < 80) ? 17 : 18)); +#ifdef HAVE_ASSERT_H assert (bytes != 0); +#endif view->bytes_per_line = bytes; view->dirty = mcview_max_dirt_limit + 1; /* To force refresh */ @@ -327,7 +329,9 @@ mcview_display_toggle_ruler (mcview_t * view) RULER_NONE }; +#ifdef HAVE_ASSERT_H assert ((size_t) ruler < 3); +#endif ruler = next[(size_t) ruler]; mcview_compute_areas (view); view->dirty++; diff --git a/src/viewer/growbuf.c b/src/viewer/growbuf.c index 2ac3ee521..949bc784e 100644 --- a/src/viewer/growbuf.c +++ b/src/viewer/growbuf.c @@ -76,7 +76,9 @@ mcview_growbuf_init (mcview_t * view) void mcview_growbuf_free (mcview_t * view) { +#ifdef HAVE_ASSERT_H assert (view->growbuf_in_use); +#endif g_ptr_array_foreach (view->growbuf_blockptr, (GFunc) g_free, NULL); @@ -91,7 +93,9 @@ mcview_growbuf_free (mcview_t * view) off_t mcview_growbuf_filesize (mcview_t * view) { +#ifdef HAVE_ASSERT_H assert (view->growbuf_in_use); +#endif if (view->growbuf_blockptr->len == 0) return 0; @@ -113,7 +117,9 @@ mcview_growbuf_read_until (mcview_t * view, off_t ofs) size_t bytesfree; gboolean short_read; +#ifdef HAVE_ASSERT_H assert (view->growbuf_in_use); +#endif if (view->growbuf_finished) return; @@ -151,7 +157,10 @@ mcview_growbuf_read_until (mcview_t * view, off_t ofs) } else { +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_VFS_PIPE); +#endif + do { nread = mc_read (view->ds_vfs_pipe, p, bytesfree); @@ -184,7 +193,9 @@ mcview_get_byte_growing_buffer (mcview_t * view, off_t byte_index, int *retval) pageno = byte_index / VIEW_PAGE_SIZE; pageindex = byte_index % VIEW_PAGE_SIZE; +#ifdef HAVE_ASSERT_H assert (view->growbuf_in_use); +#endif if (pageno < 0) return FALSE; @@ -216,7 +227,9 @@ mcview_get_ptr_growing_buffer (mcview_t * view, off_t byte_index) off_t pageno = byte_index / VIEW_PAGE_SIZE; off_t pageindex = byte_index % VIEW_PAGE_SIZE; +#ifdef HAVE_ASSERT_H assert (view->growbuf_in_use); +#endif if (pageno < 0) return NULL; diff --git a/src/viewer/hex.c b/src/viewer/hex.c index fae60b100..abd9dd151 100644 --- a/src/viewer/hex.c +++ b/src/viewer/hex.c @@ -348,7 +348,9 @@ mcview_hexedit_save_changes (mcview_t * view) char *text; struct hexedit_change_node *curr, *next; +#ifdef HAVE_ASSERT_H assert (view->filename != NULL); +#endif fp = mc_open (view->filename, O_WRONLY); if (fp != -1) diff --git a/src/viewer/inlines.h b/src/viewer/inlines.h index 8a3233fdd..4e34caec8 100644 --- a/src/viewer/inlines.h +++ b/src/viewer/inlines.h @@ -1,7 +1,9 @@ #ifndef MC__VIEWER_INLINES_H #define MC__VIEWER_INLINES_H +#ifdef HAVE_ASSERT_H #include +#endif /*** typedefs(not structures) and defined constants **********************************************/ @@ -26,7 +28,9 @@ mcview_offset_doz (off_t a, off_t b) static inline off_t mcview_offset_rounddown (off_t a, off_t b) { +#ifdef HAVE_ASSERT_H assert (b != 0); +#endif return a - a % b; } @@ -80,7 +84,9 @@ mcview_already_loaded (off_t offset, off_t idx, size_t size) static inline gboolean mcview_get_byte_file (mcview_t * view, off_t byte_index, int *retval) { +#ifdef HAVE_ASSERT_H assert (view->datasource == DS_FILE); +#endif mcview_file_load_data (view, byte_index); if (mcview_already_loaded (view->ds_file_offset, byte_index, view->ds_file_datalen)) @@ -111,7 +117,9 @@ mcview_get_byte (mcview_t * view, off_t offset, int *retval) case DS_NONE: return mcview_get_byte_none (view, offset, retval); } +#ifdef HAVE_ASSERT_H assert (!"Unknown datasource type"); +#endif return -1; } diff --git a/src/viewer/mcviewer.c b/src/viewer/mcviewer.c index 1f59ac286..14a98d69b 100644 --- a/src/viewer/mcviewer.c +++ b/src/viewer/mcviewer.c @@ -274,7 +274,9 @@ mcview_load (mcview_t * view, const char *command, const char *file, int start_l { gboolean retval = FALSE; +#ifdef HAVE_ASSERT_H assert (view->bytes_per_line != 0); +#endif view->filename = g_strdup (file); diff --git a/src/viewer/move.c b/src/viewer/move.c index e78ef13ee..fedf42e37 100644 --- a/src/viewer/move.c +++ b/src/viewer/move.c @@ -224,7 +224,10 @@ mcview_move_left (mcview_t * view, off_t columns) if (view->hex_mode) { off_t old_cursor = view->hex_cursor; + +#ifdef HAVE_ASSERT_H assert (columns == 1); +#endif if (view->hexview_in_text || !view->hexedit_lownibble) { if (view->hex_cursor > 0) @@ -253,8 +256,11 @@ mcview_move_right (mcview_t * view, off_t columns) { off_t last_byte; off_t old_cursor = view->hex_cursor; + last_byte = mcview_offset_doz (mcview_get_filesize (view), 1); +#ifdef HAVE_ASSERT_H assert (columns == 1); +#endif if (view->hexview_in_text || view->hexedit_lownibble) { if (view->hex_cursor < last_byte) -- 2.11.4.GIT