github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_4_58/include/util_ebcdic.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  /**
    18   * @file  util_ebcdic.h
    19   * @brief Utilities for EBCDIC conversion
    20   *
    21   * @defgroup APACHE_CORE_EBCDIC Utilities for EBCDIC conversion
    22   * @ingroup  APACHE_CORE
    23   * @{
    24   */
    25  
    26  #ifndef APACHE_UTIL_EBCDIC_H
    27  #define APACHE_UTIL_EBCDIC_H
    28  
    29  
    30  #ifdef __cplusplus
    31  extern "C" {
    32  #endif
    33  
    34  #include "apr_xlate.h"
    35  #include "httpd.h"
    36  #include "util_charset.h"
    37  
    38  #if APR_CHARSET_EBCDIC || defined(DOXYGEN)
    39  
    40  /**
    41   * Setup all of the global translation handlers.
    42   * @param   pool    The pool to allocate out of.
    43   * @note On non-EBCDIC system, this function does <b>not</b> exist.
    44   * So, its use should be guarded by \#if APR_CHARSET_EBCDIC.
    45   */
    46  apr_status_t ap_init_ebcdic(apr_pool_t *pool);
    47  
    48  /**
    49   * Convert protocol data from the implementation character
    50   * set to ASCII.
    51   * @param   buffer  Buffer to translate.
    52   * @param   len     Number of bytes to translate.
    53   * @note On non-EBCDIC system, this function is replaced by an 
    54   * empty macro.
    55   */
    56  void ap_xlate_proto_to_ascii(char *buffer, apr_size_t len);
    57  
    58  /**
    59   * Convert protocol data to the implementation character
    60   * set from ASCII.
    61   * @param   buffer  Buffer to translate.
    62   * @param   len     Number of bytes to translate.
    63   * @note On non-EBCDIC system, this function is replaced by an 
    64   * empty macro.
    65   */
    66  void ap_xlate_proto_from_ascii(char *buffer, apr_size_t len);
    67  
    68  /**
    69   * Convert protocol data from the implementation character
    70   * set to ASCII, then send it.
    71   * @param   r       The current request.
    72   * @param   ...     The strings to write, followed by a NULL pointer.
    73   * @note On non-EBCDIC system, this function is replaced by a call to
    74   * #ap_rvputs.
    75   */
    76  int ap_rvputs_proto_in_ascii(request_rec *r, ...);
    77  
    78  #else   /* APR_CHARSET_EBCDIC */
    79  
    80  #define ap_xlate_proto_to_ascii(x,y)          /* NOOP */
    81  #define ap_xlate_proto_from_ascii(x,y)        /* NOOP */
    82  
    83  #define ap_rvputs_proto_in_ascii  ap_rvputs
    84  
    85  #endif  /* APR_CHARSET_EBCDIC */
    86  
    87  #ifdef __cplusplus
    88  }
    89  #endif
    90  
    91  #endif  /* !APACHE_UTIL_EBCDIC_H */
    92  /** @} */