| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | /* internal.h
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Internal definitions used by Expat.  This is not needed to compile | 
					
						
							|  |  |  |    client code. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The following calling convention macros are defined for frequently | 
					
						
							|  |  |  |    called functions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    FASTCALL    - Used for those internal functions that have a simple | 
					
						
							|  |  |  |                  body and a low number of arguments and local variables. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    PTRCALL     - Used for functions called though function pointers. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    PTRFASTCALL - Like PTRCALL, but for low number of arguments. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    inline      - Used for selected internal functions for which inlining | 
					
						
							|  |  |  |                  may improve performance on some platforms. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Note: Use of these macros is based on judgement, not hard rules, | 
					
						
							|  |  |  |          and therefore subject to change. | 
					
						
							| 
									
										
										
										
											2018-09-21 08:39:36 +02:00
										 |  |  |                             __  __            _ | 
					
						
							|  |  |  |                          ___\ \/ /_ __   __ _| |_ | 
					
						
							|  |  |  |                         / _ \\  /| '_ \ / _` | __| | 
					
						
							|  |  |  |                        |  __//  \| |_) | (_| | |_
 | 
					
						
							|  |  |  |                         \___/_/\_\ .__/ \__,_|\__| | 
					
						
							|  |  |  |                                  |_| XML parser | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Copyright (c) 1997-2000 Thai Open Source Software Center Ltd | 
					
						
							|  |  |  |    Copyright (c) 2000-2017 Expat development team | 
					
						
							|  |  |  |    Licensed under the MIT license: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Permission is  hereby granted,  free of charge,  to any  person obtaining | 
					
						
							|  |  |  |    a  copy  of  this  software   and  associated  documentation  files  (the | 
					
						
							|  |  |  |    "Software"),  to  deal in  the  Software  without restriction,  including | 
					
						
							|  |  |  |    without  limitation the  rights  to use,  copy,  modify, merge,  publish, | 
					
						
							|  |  |  |    distribute, sublicense, and/or sell copies of the Software, and to permit | 
					
						
							|  |  |  |    persons  to whom  the Software  is  furnished to  do so,  subject to  the | 
					
						
							|  |  |  |    following conditions: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    The above copyright  notice and this permission notice  shall be included | 
					
						
							|  |  |  |    in all copies or substantial portions of the Software. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND, | 
					
						
							|  |  |  |    EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF | 
					
						
							|  |  |  |    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN | 
					
						
							|  |  |  |    NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | 
					
						
							|  |  |  |    DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR | 
					
						
							|  |  |  |    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | 
					
						
							|  |  |  |    USE OR OTHER DEALINGS IN THE SOFTWARE. | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(__GNUC__) && defined(__i386__) && !defined(__MINGW32__)
 | 
					
						
							|  |  |  | /* We'll use this version by default only where we know it helps.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    regparm() generates warnings on Solaris boxes.   See SF bug #692878. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    Instability reported with egcs on a RedHat Linux 7.3. | 
					
						
							|  |  |  |    Let's comment out: | 
					
						
							|  |  |  |    #define FASTCALL __attribute__((stdcall, regparm(3)))
 | 
					
						
							|  |  |  |    and let's try this: | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define FASTCALL __attribute__((regparm(3)))
 | 
					
						
							|  |  |  | #define PTRFASTCALL __attribute__((regparm(3)))
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Using __fastcall seems to have an unexpected negative effect under
 | 
					
						
							|  |  |  |    MS VC++, especially for function pointers, so we won't use it for | 
					
						
							|  |  |  |    now on that platform. It may be reconsidered for a future release | 
					
						
							|  |  |  |    if it can be made more effective. | 
					
						
							|  |  |  |    Likely reason: __fastcall on Windows is like stdcall, therefore | 
					
						
							|  |  |  |    the compiler cannot perform stack optimizations for call clusters. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Make sure all of these are defined if they aren't already. */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef FASTCALL
 | 
					
						
							|  |  |  | #define FASTCALL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef PTRCALL
 | 
					
						
							|  |  |  | #define PTRCALL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef PTRFASTCALL
 | 
					
						
							|  |  |  | #define PTRFASTCALL
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef XML_MIN_SIZE
 | 
					
						
							|  |  |  | #if !defined(__cplusplus) && !defined(inline)
 | 
					
						
							|  |  |  | #ifdef __GNUC__
 | 
					
						
							|  |  |  | #define inline __inline
 | 
					
						
							|  |  |  | #endif /* __GNUC__ */
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* XML_MIN_SIZE */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | #define inline inline
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | #ifndef inline
 | 
					
						
							|  |  |  | #define inline
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef UNUSED_P
 | 
					
						
							|  |  |  | # ifdef __GNUC__
 | 
					
						
							|  |  |  | #  define UNUSED_P(p) UNUSED_ ## p __attribute__((__unused__))
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define UNUSED_P(p) UNUSED_ ## p
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void | 
					
						
							| 
									
										
										
										
											2018-09-21 08:39:36 +02:00
										 |  |  | _INTERNAL_trim_to_complete_utf8_characters(const char * from, const char ** fromLimRef); | 
					
						
							| 
									
										
										
										
											2016-10-06 14:21:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |