github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/include/apr_version.h (about)

     1  /* Licensed to the Apache Software Foundation (ASF) under one or more
     2   * contributor license agreements.  See the NOTICE file distributed with
     3   * this work for additional information regarding copyright ownership.
     4   * The ASF licenses this file to You under the Apache License, Version 2.0
     5   * (the "License"); you may not use this file except in compliance with
     6   * the License.  You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  #ifndef APR_VERSION_H
    18  #define APR_VERSION_H
    19  
    20  /**
    21   * @file apr_version.h
    22   * @brief APR Versioning Interface
    23   * 
    24   * APR's Version
    25   *
    26   * There are several different mechanisms for accessing the version. There
    27   * is a string form, and a set of numbers; in addition, there are constants
    28   * which can be compiled into your application, and you can query the library
    29   * being used for its actual version.
    30   *
    31   * Note that it is possible for an application to detect that it has been
    32   * compiled against a different version of APR by use of the compile-time
    33   * constants and the use of the run-time query function.
    34   *
    35   * APR version numbering follows the guidelines specified in:
    36   *
    37   *     http://apr.apache.org/versioning.html
    38   */
    39  
    40  
    41  #define APR_COPYRIGHT "Copyright (c) 2000-2015 The Apache Software " \
    42                        "Foundation or its licensors, as applicable."
    43  
    44  /* The numeric compile-time version constants. These constants are the
    45   * authoritative version numbers for APR. 
    46   */
    47  
    48  /** major version 
    49   * Major API changes that could cause compatibility problems for older
    50   * programs such as structure size changes.  No binary compatibility is
    51   * possible across a change in the major version.
    52   */
    53  #define APR_MAJOR_VERSION       1
    54  
    55  /** minor version
    56   * Minor API changes that do not cause binary compatibility problems.
    57   * Reset to 0 when upgrading APR_MAJOR_VERSION
    58   */
    59  #define APR_MINOR_VERSION       5
    60  
    61  /** patch level 
    62   * The Patch Level never includes API changes, simply bug fixes.
    63   * Reset to 0 when upgrading APR_MINOR_VERSION
    64   */
    65  #define APR_PATCH_VERSION       2
    66  
    67  /** 
    68   * The symbol APR_IS_DEV_VERSION is only defined for internal,
    69   * "development" copies of APR.  It is undefined for released versions
    70   * of APR.
    71   */
    72  /* #define APR_IS_DEV_VERSION */
    73  
    74  /**
    75   * Check at compile time if the APR version is at least a certain
    76   * level.
    77   * @param major The major version component of the version checked
    78   * for (e.g., the "1" of "1.3.0").
    79   * @param minor The minor version component of the version checked
    80   * for (e.g., the "3" of "1.3.0").
    81   * @param patch The patch level component of the version checked
    82   * for (e.g., the "0" of "1.3.0").
    83   * @remark This macro is available with APR versions starting with
    84   * 1.3.0.
    85   */
    86  #define APR_VERSION_AT_LEAST(major,minor,patch)                    \
    87  (((major) < APR_MAJOR_VERSION)                                     \
    88   || ((major) == APR_MAJOR_VERSION && (minor) < APR_MINOR_VERSION) \
    89   || ((major) == APR_MAJOR_VERSION && (minor) == APR_MINOR_VERSION && (patch) <= APR_PATCH_VERSION))
    90  
    91  #if defined(APR_IS_DEV_VERSION) || defined(DOXYGEN)
    92  /** Internal: string form of the "is dev" flag */
    93  #ifndef APR_IS_DEV_STRING
    94  #define APR_IS_DEV_STRING "-dev"
    95  #endif
    96  #else
    97  #define APR_IS_DEV_STRING ""
    98  #endif
    99  
   100  /* APR_STRINGIFY is defined here, and also in apr_general.h, so wrap it */
   101  #ifndef APR_STRINGIFY
   102  /** Properly quote a value as a string in the C preprocessor */
   103  #define APR_STRINGIFY(n) APR_STRINGIFY_HELPER(n)
   104  /** Helper macro for APR_STRINGIFY */
   105  #define APR_STRINGIFY_HELPER(n) #n
   106  #endif
   107  
   108  /** The formatted string of APR's version */
   109  #define APR_VERSION_STRING \
   110       APR_STRINGIFY(APR_MAJOR_VERSION) "." \
   111       APR_STRINGIFY(APR_MINOR_VERSION) "." \
   112       APR_STRINGIFY(APR_PATCH_VERSION) \
   113       APR_IS_DEV_STRING
   114  
   115  /** An alternative formatted string of APR's version */
   116  /* macro for Win32 .rc files using numeric csv representation */
   117  #define APR_VERSION_STRING_CSV APR_MAJOR_VERSION ##, \
   118                               ##APR_MINOR_VERSION ##, \
   119                               ##APR_PATCH_VERSION
   120  
   121  
   122  #ifndef APR_VERSION_ONLY
   123  
   124  /* The C language API to access the version at run time, 
   125   * as opposed to compile time.  APR_VERSION_ONLY may be defined 
   126   * externally when preprocessing apr_version.h to obtain strictly 
   127   * the C Preprocessor macro declarations.
   128   */
   129  
   130  #include "apr.h"
   131  
   132  #ifdef __cplusplus
   133  extern "C" {
   134  #endif
   135  
   136  /** 
   137   * The numeric version information is broken out into fields within this 
   138   * structure. 
   139   */
   140  typedef struct {
   141      int major;      /**< major number */
   142      int minor;      /**< minor number */
   143      int patch;      /**< patch number */
   144      int is_dev;     /**< is development (1 or 0) */
   145  } apr_version_t;
   146  
   147  /**
   148   * Return APR's version information information in a numeric form.
   149   *
   150   *  @param pvsn Pointer to a version structure for returning the version
   151   *              information.
   152   */
   153  APR_DECLARE(void) apr_version(apr_version_t *pvsn);
   154  
   155  /** Return APR's version information as a string. */
   156  APR_DECLARE(const char *) apr_version_string(void);
   157  
   158  #ifdef __cplusplus
   159  }
   160  #endif
   161  
   162  #endif /* ndef APR_VERSION_ONLY */
   163  
   164  #endif /* ndef APR_VERSION_H */