xref: /freebsd/crypto/openssl/util/merge-err-lines (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1*e0c4386eSCy Schubert#! /usr/bin/env perl
2*e0c4386eSCy Schubert# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
3*e0c4386eSCy Schubert#
4*e0c4386eSCy Schubert# Licensed under the Apache License 2.0 (the "License").  You may not use
5*e0c4386eSCy Schubert# this file except in compliance with the License.  You can obtain a copy
6*e0c4386eSCy Schubert# in the file LICENSE in the source distribution or at
7*e0c4386eSCy Schubert# https://www.openssl.org/source/license.html
8*e0c4386eSCy Schubert
9*e0c4386eSCy Schubert# Sometimes calls to XXXerr() are split into two lines, because the define'd
10*e0c4386eSCy Schubert# names are very long.  This script looks for those lines and merges them.
11*e0c4386eSCy Schubert# It should be run before the "err-to-raise" script.
12*e0c4386eSCy Schubert
13*e0c4386eSCy Schubert# Run this program like this:
14*e0c4386eSCy Schubert#       perl -pi util/merge-err-lines files...
15*e0c4386eSCy Schubert# or
16*e0c4386eSCy Schubert#       git grep -l '[A-Z0-9]err([^)]*$' | xargs perl -pi util/merge-err-lines
17*e0c4386eSCy Schubert
18*e0c4386eSCy Schubertuse strict;
19*e0c4386eSCy Schubertuse warnings;
20*e0c4386eSCy Schubert
21*e0c4386eSCy Schubert# Look for "{whitespace}XXXerr(no-close-paren{WHITESPACE}" lines
22*e0c4386eSCy Schubertif ( /^ *[_A-Z0-9]+err\([^)]+ *$/ ) {
23*e0c4386eSCy Schubert    my $copy = $_;
24*e0c4386eSCy Schubert    chop($copy);
25*e0c4386eSCy Schubert    $copy =~ s/ +$//;
26*e0c4386eSCy Schubert    my $next = <>;
27*e0c4386eSCy Schubert    $next =~ s/^ +//;
28*e0c4386eSCy Schubert    $_ = $copy . ' ' . $next;
29*e0c4386eSCy Schubert}
30