From 8c0e76813af6a886f66d3e95b908c6c924d2a6ad Mon Sep 17 00:00:00 2001 From: Rich Salz Date: Mon, 12 Aug 2019 15:50:51 -0400 Subject: [PATCH] Add merge-err-lines script Reviewed-by: Dmitry Belyavskiy Reviewed-by: Richard Levitte (Merged from https://github.com/openssl/openssl/pull/9441) --- util/err-to-raise | 8 ++------ util/merge-err-lines | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100755 util/merge-err-lines diff --git a/util/err-to-raise b/util/err-to-raise index 125269fee5..a62ee3b790 100755 --- a/util/err-to-raise +++ b/util/err-to-raise @@ -10,12 +10,8 @@ # perl -pi util/err-to-error files... # or # git ls-files | grep '\.c$' | xargs perl -pi util/err-to-raise - -# There will be some hand-edits necessary, when the second arg was on a -# separate line. This command will find them: -# git grep -E '[A-Z0-9_]+err\(' -# There are about 500 such lines. Another script looks for such things -# and tries to merge lines. +# Consider running util/merge-err-lines first, to catch most (all?) of the +# cases where the XXXerr() call is split into two lines. # Also, what to do about the engines files? This includes: # AFALGerr, CAPIerr, DASYNC, OSSLTEST diff --git a/util/merge-err-lines b/util/merge-err-lines new file mode 100755 index 0000000000..33644fa12e --- /dev/null +++ b/util/merge-err-lines @@ -0,0 +1,29 @@ +#! /usr/bin/env perl +# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +# Sometimes calls to XXXerr() are split into two lines, because the define'd +# names are very long. This script looks for those lines and merges them. +# It should be run before the "err-to-raise" script. + +# Run this program like this: +# perl -pi util/merge-err-lines files... +# or +# git grep -l '[A-Z0-9]err([^)]*$' | xargs perl -pi util/merge-err-lines + +use strict; +use warnings; + +# Look for "{whitespace}XXXerr(no-close-paren{WHITESPACE}" lines +if ( /^ *[_A-Z0-9]+err\([^)]+ *$/ ) { + my $copy = $_; + chop($copy); + $copy =~ s/ +$//; + my $next = <>; + $next =~ s/^ +//; + $_ = $copy . ' ' . $next; +}