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 /** @} */