if (($front, $back) = $prolog=~/^(.*?Errors:\s*?(?=\n)).*?\n\s*\*\s*\n(.*)/s) {
 
#!/usr/local/bin/perl -w
require 5.003;
use Text::Tabs;
# NOTE: THE FORMAT OF HRETURN_ERROR AND HGOTO_ERROR MACROS HAS
# CHANGED. THIS SCRIPT NO LONGER WORKS! --rpm
# Copyright by The HDF Group.
# Copyright by the Board of Trustees of the University of Illinois.
# All rights reserved.
#
# This file is part of HDF5.  The full HDF5 copyright notice, including
# terms governing use, modification, and redistribution, is contained in
# the COPYING file, which can be found at the root of the source code
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#
# Robb Matzke, matzke@llnl.gov
# 30 Aug 1997
#
# Purpose: This script will read standard input which should be a
#      function prologue followed by a C function and will emit
#      on standard output the same source code with the function
#      prologue containing documentation for the various errors
#      that occur in the function.
#
#      Errors are raised by calling HGOTO_ERROR() or
#      HRETURN_ERROR(). The reason for the error message is a
#      comment which appears immediately after the error macro
#      call and is contained entirely on one line:
#
#       HRETURN_ERROR (...); /*entry not found*/
#
#      If such a comment doesn't exist, then the previous comment
#      is used, subject to the constraint that raising an error
#      clears the previous comment.
#
#            /* Entry not found */
#        HGOTO_ERROR (...);
#
#      Emacs users can use this script interactively with the
#      c-mark-function and shell-command-on-region functions which
#      are normally bound to M-C-h and M-|.
# Split STDIN into the prolog and the function body.  Preserve leading
# white space.
$_ = join "", <STDIN>;
my ($head, $prolog, $body) = (/^(\s*)(\/\*(.*?)\*\/)?(.*)/s)[0,2,3];
$prolog = "" unless $prolog;