]> git.ipfire.org Git - thirdparty/dovecot/core.git/commit
global - migrate strncmp literals to str_begins
authorPhil Carmody <phil@dovecot.fi>
Thu, 11 Jan 2018 13:03:36 +0000 (15:03 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 26 Apr 2018 09:41:29 +0000 (09:41 +0000)
commite4c57ac2d23db47943b1159ab0f7691498ba9c45
tree770de4b83c8b2045468489625ecad0bdcb93de0e
parentdff3bf002d29ddd284e56b1293c516c211456802
global - migrate strncmp literals to str_begins

Simplify a bunch of strncmp(,,number) calls.

git ls-files \*.[ch] | xargs perl -p -i -e 's/strncmp\((.*?), ?(\".*?\"), ?(\d+)\) == 0/str_begins($1, $2)/g'
git ls-files \*.[ch] | xargs perl -p -i -e 's/strncmp\((.*?), ?(\".*?\"), ?(\d+)\) != 0/!str_begins($1, $2)/g'

I ran a longer script to verify that all of the string literals and
the length matched. They didn't:

$ git grep strncmp | perl -ne 'print if(m/strncmp\([^,]*,\s*"(.*?)",\s*(\d+)/ and ($s=$1,$t=$2,$s=~s/\\[tn]/#/g,length($s)) != $t)'
src/auth/db-oauth2.c:               if (strncmp(field, "oauth2:", 8) == 0 &&

With the new functions, that kind of typo is impossible.

Signed-off-by: Phil Carmody <phil@dovecot.fi>
113 files changed:
src/auth/auth-client-connection.c
src/auth/auth-master-connection.c
src/auth/auth-request.c
src/auth/auth-worker-server.c
src/auth/db-ldap.c
src/auth/db-oauth2.c
src/auth/main.c
src/auth/mech-oauth2.c
src/auth/mech-otp.c
src/auth/passdb-blocking.c
src/auth/passdb-bsdauth.c
src/auth/passdb-checkpassword.c
src/auth/passdb-lua.c
src/auth/passdb-pam.c
src/auth/passdb-vpopmail.c
src/auth/password-scheme-crypt.c
src/auth/password-scheme.c
src/auth/userdb-blocking.c
src/auth/userdb-checkpassword.c
src/auth/userdb-lua.c
src/auth/userdb-passwd-file.c
src/auth/userdb-vpopmail.c
src/config/config-connection.c
src/config/doveconf.c
src/config/old-set-parser.c
src/config/sysinfo-get.c
src/director/login-connection.c
src/dns/dns-client.c
src/doveadm/client-connection-tcp.c
src/doveadm/doveadm-auth-server.c
src/doveadm/doveadm-auth.c
src/doveadm/doveadm-dsync.c
src/doveadm/doveadm-dump-dbox.c
src/doveadm/doveadm-mail-fetch.c
src/doveadm/doveadm-mail-mailbox-metadata.c
src/doveadm/doveadm-mail-server.c
src/doveadm/doveadm-oldstats.c
src/doveadm/doveadm-proxy.c
src/doveadm/doveadm-util.c
src/doveadm/doveadm-zlib.c
src/doveadm/server-connection.c
src/imap-hibernate/imap-client.c
src/imap-login/imap-proxy.c
src/imap-urlauth/imap-urlauth.c
src/imap/cmd-notify.c
src/imap/imap-fetch-body.c
src/imap/imap-sync.c
src/lib-auth/auth-client-request.c
src/lib-auth/auth-master.c
src/lib-auth/auth-server-connection.c
src/lib-dcrypt/dcrypt-openssl.c
src/lib-dict-backend/dict-sql-settings.c
src/lib-dict/dict-client.c
src/lib-dict/dict-memcached-ascii.c
src/lib-dict/dict-memcached.c
src/lib-dict/dict-redis.c
src/lib-dns/dns-lookup.c
src/lib-fs/fs-posix.c
src/lib-imap-storage/imap-msgpart.c
src/lib-imap/imap-base-subject.c
src/lib-index/mail-index.c
src/lib-mail/test-message-header-encode.c
src/lib-master/master-login-auth.c
src/lib-master/master-login.c
src/lib-master/master-service-settings-cache.c
src/lib-master/master-service-settings.c
src/lib-master/master-service.c
src/lib-program-client/program-client.c
src/lib-settings/settings-parser.c
src/lib-smtp/test-smtp-client-errors.c
src/lib-sql/driver-pgsql.c
src/lib-storage/index/imapc/imapc-mail-fetch.c
src/lib-storage/index/index-status.c
src/lib-storage/index/index-storage.c
src/lib-storage/index/maildir/maildir-sync-index.c
src/lib-storage/index/mbox/mbox-save.c
src/lib-storage/index/pop3c/pop3c-mail.c
src/lib-storage/index/pop3c/pop3c-storage.c
src/lib-storage/list/mailbox-list-fs-flags.c
src/lib-storage/list/mailbox-list-maildir-iter.c
src/lib-storage/mail-namespace.c
src/lib-storage/mail-search-register-imap.c
src/lib-storage/mail-storage-hooks.c
src/lib-storage/mail-storage-service.c
src/lib-storage/mail-storage-settings.c
src/lib-storage/mail-storage.c
src/lib-storage/mailbox-list.c
src/lib-storage/test-mail-storage.c
src/lib/iostream-rawlog.c
src/lib/module-dir.c
src/lib/test-str-sanitize.c
src/lib/unlink-directory.c
src/log/log-connection.c
src/login-common/client-common-auth.c
src/login-common/sasl-server.c
src/master/main.c
src/old-stats/client-export.c
src/old-stats/mail-session.c
src/plugins/acl/acl-backend-vfile.c
src/plugins/acl/acl-backend.c
src/plugins/fs-compress/fs-compress.c
src/plugins/fts-lucene/fts-lucene-plugin.c
src/plugins/fts-solr/fts-solr-plugin.c
src/plugins/fts-squat/fts-backend-squat.c
src/plugins/fts-squat/squat-test.c
src/plugins/fts/fts-build-mail.c
src/plugins/fts/fts-indexer.c
src/plugins/old-stats/mail-stats-fill.c
src/plugins/quota/quota-status.c
src/plugins/quota/quota-util.c
src/plugins/quota/quota.c
src/pop3-login/pop3-proxy.c
src/util/script.c