|  | #! /bin/bash | 
|  | # Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. | 
|  | # | 
|  | # Licensed under the OpenSSL license (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 | 
|  |  | 
|  | # Find unused error function-names and reason-codes, and edit them | 
|  | # out of the source.  Doesn't handle line-wrapping, might have to do | 
|  | # some manual cleanups to fix compile errors. | 
|  |  | 
|  | export X1=/tmp/f.1.$$ | 
|  | export X2=/tmp/f.2.$$ | 
|  |  | 
|  | cd include/openssl || exit 1 | 
|  | grep '_[RF]_' * | awk '{print $3;}' | sort -u >$X1 | 
|  | cd ../.. | 
|  |  | 
|  | for F in `cat $X1` ; do | 
|  | git grep -l --full-name -F $F >$X2 | 
|  | NUM=`wc -l <$X2` | 
|  | test $NUM -gt 2 && continue | 
|  | if grep -q $F crypto/err/openssl.ec ; then | 
|  | echo Possibly unused $F found in openssl.ec | 
|  | continue | 
|  | fi | 
|  | echo $F | 
|  | for FILE in `cat $X2` ; do | 
|  | grep -v -w $F <$FILE >$FILE.new | 
|  | mv $FILE.new $FILE | 
|  | done | 
|  | done | 
|  |  | 
|  | rm $X1 $X2 |