isync

mailbox synchronization program
git clone https://git.code.sf.net/p/isync/isync
Log | Files | Refs | README | LICENSE

commit def22db09679c1570e82eeb9e6ad75f8bfcfeb53
parent 5c2e8d3e147ad4550fbdb66585a93b1a03e1f756
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date:   Sun, 28 Jul 2019 21:13:28 +0200

constness fixes

add missing const qualifications, and add "const cast" suppressions
where unavoidable.

Diffstat:
Msrc/drv_maildir.c | 5++++-
Msrc/main.c | 8++++----
Msrc/socket.c | 5++++-
Msrc/sync.c | 2+-
Msrc/sync.h | 2+-
Msrc/util.c | 2+-
6 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/src/drv_maildir.c b/src/drv_maildir.c @@ -649,7 +649,10 @@ static void make_key( const char *info_stop, DBT *tkey, const char *name ) { char *u = strpbrk( name, info_stop ); +DIAG_PUSH +DIAG_DISABLE("-Wcast-qual") // C has no const_cast<> ... tkey->data = (char *)name; +DIAG_POP tkey->size = u ? (size_t)(u - name) : strlen( name ); } #endif /* USE_DB */ @@ -844,7 +847,7 @@ maildir_set_uid( maildir_store_t *ctx, const char *name, uint *uid ) static int maildir_compare( const void *l, const void *r ) { - msg_t *lm = (msg_t *)l, *rm = (msg_t *)r; + const msg_t *lm = (const msg_t *)l, *rm = (const msg_t *)r; char *ldot, *rdot, *ldot2, *rdot2, *lseq, *rseq; int ret, llen, rlen; diff --git a/src/main.c b/src/main.c @@ -248,8 +248,8 @@ is_inbox( const char *name ) static int cmp_box_names( const void *a, const void *b ) { - const char *as = *(const char **)a; - const char *bs = *(const char **)b; + const char *as = *(const char * const *)a; + const char *bs = *(const char * const *)b; int ai = is_inbox( as ); int bi = is_inbox( bs ); int di = bi - ai; @@ -1087,14 +1087,14 @@ sync_listed_boxes( main_vars_t *mvars, box_ent_t *mbox ) if (!mvars->list) { nfasprintf( &mvars->names[M], "%s%s", mpfx, mbox->name ); nfasprintf( &mvars->names[S], "%s%s", spfx, mbox->name ); - sync_boxes( mvars->ctx, (const char **)mvars->names, mbox->present, mvars->chan, done_sync_2_dyn, mvars ); + sync_boxes( mvars->ctx, (const char * const *)mvars->names, mbox->present, mvars->chan, done_sync_2_dyn, mvars ); return 1; } printf( "%s%s <=> %s%s\n", mpfx, mbox->name, spfx, mbox->name ); } else { if (!mvars->list) { mvars->names[M] = mvars->names[S] = mbox->name; - sync_boxes( mvars->ctx, (const char **)mvars->names, mbox->present, mvars->chan, done_sync, mvars ); + sync_boxes( mvars->ctx, (const char * const *)mvars->names, mbox->present, mvars->chan, done_sync, mvars ); return 1; } puts( mbox->name ); diff --git a/src/socket.c b/src/socket.c @@ -232,7 +232,10 @@ verify_cert_host( const server_conf_t *conf, conn_t *sock ) static int init_ssl_ctx( const server_conf_t *conf ) { +DIAG_PUSH +DIAG_DISABLE("-Wcast-qual") // C has no 'mutable' or const_cast<> ... server_conf_t *mconf = (server_conf_t *)conf; +DIAG_POP if (conf->SSLContext) return conf->ssl_ctx_valid; @@ -320,7 +323,7 @@ socket_start_tls( conn_t *conn, void (*cb)( int ok, void *aux ) ) } init_wakeup( &conn->ssl_fake, ssl_fake_cb, conn ); - if (!(conn->ssl = SSL_new( ((server_conf_t *)conn->conf)->SSLContext ))) { + if (!(conn->ssl = SSL_new( ((server_conf_t const *)conn->conf)->SSLContext ))) { print_ssl_errors( "initializing SSL connection" ); start_tls_p3( conn, 0 ); return; diff --git a/src/sync.c b/src/sync.c @@ -1002,7 +1002,7 @@ static void box_opened2( sync_vars_t *svars, int t ); static void load_box( sync_vars_t *svars, int t, uint minwuid, uint_array_t mexcs ); void -sync_boxes( store_t *ctx[], const char *names[], int present[], channel_conf_t *chan, +sync_boxes( store_t *ctx[], const char * const names[], int present[], channel_conf_t *chan, void (*cb)( int sts, void *aux ), void *aux ) { sync_vars_t *svars; diff --git a/src/sync.h b/src/sync.h @@ -80,7 +80,7 @@ extern const char *str_ms[2], *str_hl[2]; #define BOX_PRESENT 1 /* All passed pointers must stay alive until cb is called. */ -void sync_boxes( store_t *ctx[], const char *names[], int present[], channel_conf_t *chan, +void sync_boxes( store_t *ctx[], const char * const names[], int present[], channel_conf_t *chan, void (*cb)( int sts, void *aux ), void *aux ); #endif diff --git a/src/util.c b/src/util.c @@ -541,7 +541,7 @@ map_name( const char *arg, char **result, int reserve, const char *in, const cha static int compare_uints( const void *l, const void *r ) { - uint li = *(uint *)l, ri = *(uint *)r; + uint li = *(const uint *)l, ri = *(const uint *)r; if (li != ri) // Can't subtract, the result might not fit into signed int. return li > ri ? 1 : -1; return 0;