HDsnprintf(lib_vers, sizeof(lib_vers), "%u.%u.%u%s", H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE, (HDstrlen(H5_VERS_SUBRELEASE) > 0 ? "-"H5_VERS_SUBRELEASE : ""));
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * 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 files COPYING and Copyright.html.  COPYING can be found at the root   *
 * of the source code distribution tree; Copyright.html can be found at the  *
 * root level of an installed copy of the electronic HDF5 document set and   *
 * is linked from the top-level documents page.  It can also be found at     *
 * http://hdfgroup.org/HDF5/doc/Copyright.html.  If you do not have          *
 * access to either file, you may request a copy from help@hdfgroup.org.     *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
 * Purpose: Provides error handling in the form of a stack.  The
 *      FUNC_ENTER() macro clears the error stack whenever an API
 *      function is entered.  When an error is detected, an entry is
 *      pushed onto the stack.  As the functions unwind additional
 *      entries are pushed onto the stack. The API function will
 *      return some indication that an error occurred and the
 *      application can print the error stack.
 *
 *      Certain API functions in the H5E package (such as H5Eprint2())
 *      do not clear the error stack.  Otherwise, any function which
 *      doesn't have an underscore immediately after the package name
 *      will clear the error stack.  For instance, H5Fopen() clears
 *      the error stack while H5F_open() does not.
 *
 *      An error stack has a fixed maximum size.  If this size is
 *      exceeded then the stack will be truncated and only the
 *      inner-most functions will have entries on the stack. This is
 *      expected to be a rare condition.
 *
 *      Each thread has its own error stack, but since
 *      multi-threading has not been added to the library yet, this
 *      package maintains a single error stack. The error stack is
 *      statically allocated to reduce the complexity of handling
 *      errors within the H5E package.
 *
 */
/****************/
/* Module Setup */
/****************/
#include "H5Emodule.h"          /* This source code file is part of the H5E module */
/***********/