~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

TidyLib
tidy/include/platform.h

Version: ~ [ 1.0 ] ~

** Warning: Cannot open xref database.

1 #ifndef __PLATFORM_H__ 2 #define __PLATFORM_H__ 3 4 /* platform.h -- Platform specifics 5 6 (c) 1998-2005 (W3C) MIT, ERCIM, Keio University 7 See tidy.h for the copyright notice. 8 9 CVS Info : 10 11 $Author: arnaud02 $ 12 $Date: 2005/06/15 12:45:39 $ 13 $Revision: 1.55 $ 14 15 */ 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 /* 22 Uncomment and edit one of the following #defines if you 23 want to specify the config file at compile-time. 24 */ 25 26 /* #define CONFIG_FILE "/etc/tidy_config.txt" */ /* original */ 27 /* #define CONFIG_FILE "/etc/tidyrc" */ 28 /* #define CONFIG_FILE "/etc/tidy.conf" */ 29 30 /* 31 Uncomment the following #define if you are on a system 32 supporting the HOME environment variable. 33 It enables tidy to find config files named ~/.tidyrc if 34 the HTML_TIDY environment variable is not set. 35 */ 36 /* #define USER_CONFIG_FILE "~/.tidyrc" */ 37 38 /* 39 Uncomment the following #define if your 40 system supports the call getpwnam(). 41 E.g. Unix and Linux. 42 43 It enables tidy to find files named 44 ~your/foo for use in the HTML_TIDY environment 45 variable or CONFIG_FILE or USER_CONFIGFILE or 46 on the command line: -config ~joebob/tidy.cfg 47 48 Contributed by Todd Lewis. 49 */ 50 51 /* #define SUPPORT_GETPWNAM */ 52 53 54 /* Enable/disable support for Big5 and Shift_JIS character encodings */ 55 #ifndef SUPPORT_ASIAN_ENCODINGS 56 #define SUPPORT_ASIAN_ENCODINGS 1 57 #endif 58 59 /* Enable/disable support for UTF-16 character encodings */ 60 #ifndef SUPPORT_UTF16_ENCODINGS 61 #define SUPPORT_UTF16_ENCODINGS 1 62 #endif 63 64 /* Enable/disable support for additional accessibility checks */ 65 #ifndef SUPPORT_ACCESSIBILITY_CHECKS 66 #define SUPPORT_ACCESSIBILITY_CHECKS 1 67 #endif 68 69 70 /* Convenience defines for Mac platforms */ 71 72 #if defined(macintosh) 73 /* Mac OS 6.x/7.x/8.x/9.x, with or without CarbonLib - MPW or Metrowerks 68K/PPC compilers */ 74 #define MAC_OS_CLASSIC 75 #ifndef PLATFORM_NAME 76 #define PLATFORM_NAME "Mac OS" 77 #endif 78 79 /* needed for access() */ 80 #if !defined(_POSIX) && !defined(NO_ACCESS_SUPPORT) 81 #define NO_ACCESS_SUPPORT 82 #endif 83 84 #ifdef SUPPORT_GETPWNAM 85 #undef SUPPORT_GETPWNAM 86 #endif 87 88 #elif defined(__APPLE__) && defined(__MACH__) 89 /* Mac OS X (client) 10.x (or server 1.x/10.x) - gcc or Metrowerks MachO compilers */ 90 #define MAC_OS_X 91 #ifndef PLATFORM_NAME 92 #define PLATFORM_NAME "Mac OS X" 93 #endif 94 #endif 95 96 #if defined(MAC_OS_CLASSIC) || defined(MAC_OS_X) 97 /* Any OS on Mac platform */ 98 #define MAC_OS 99 #define FILENAMES_CASE_SENSITIVE 0 100 #define strcasecmp strcmp 101 #ifndef DFLT_REPL_CHARENC 102 #define DFLT_REPL_CHARENC MACROMAN 103 #endif 104 #endif 105 106 /* Convenience defines for BSD like platforms */ 107 108 #if defined(__FreeBSD__) 109 #define BSD_BASED_OS 110 #ifndef PLATFORM_NAME 111 #define PLATFORM_NAME "FreeBSD" 112 #endif 113 114 #elif defined(__NetBSD__) 115 #define BSD_BASED_OS 116 #ifndef PLATFORM_NAME 117 #define PLATFORM_NAME "NetBSD" 118 #endif 119 120 #elif defined(__OpenBSD__) 121 #define BSD_BASED_OS 122 #ifndef PLATFORM_NAME 123 #define PLATFORM_NAME "OpenBSD" 124 #endif 125 126 #elif defined(__MINT__) 127 #define BSD_BASED_OS 128 #ifndef PLATFORM_NAME 129 #define PLATFORM_NAME "FreeMiNT" 130 #endif 131 132 #elif defined(__bsdi__) 133 #define BSD_BASED_OS 134 #ifndef PLATFORM_NAME 135 #define PLATFORM_NAME "BSD/OS" 136 #endif 137 138 #endif 139 140 /* Convenience defines for Windows platforms */ 141 142 #if defined(WINDOWS) || defined(_WIN32) 143 144 #define WINDOWS_OS 145 #ifndef PLATFORM_NAME 146 #define PLATFORM_NAME "Windows" 147 #endif 148 149 #if defined(__MWERKS__) || defined(__MSL__) 150 /* not available with Metrowerks Standard Library */ 151 152 #ifdef SUPPORT_GETPWNAM 153 #undef SUPPORT_GETPWNAM 154 #endif 155 156 /* needed for setmode() */ 157 #if !defined(NO_SETMODE_SUPPORT) 158 #define NO_SETMODE_SUPPORT 159 #endif 160 161 #define strcasecmp _stricmp 162 163 #endif 164 165 #if defined(__BORLANDC__) 166 #define strcasecmp stricmp 167 #endif 168 169 #define FILENAMES_CASE_SENSITIVE 0 170 171 #endif 172 173 /* Convenience defines for Linux platforms */ 174 175 #if defined(linux) && defined(__alpha__) 176 /* Linux on Alpha - gcc compiler */ 177 #define LINUX_OS 178 #ifndef PLATFORM_NAME 179 #define PLATFORM_NAME "Linux/Alpha" 180 #endif 181 182 #elif defined(linux) && defined(__sparc__) 183 /* Linux on Sparc - gcc compiler */ 184 #define LINUX_OS 185 #ifndef PLATFORM_NAME 186 #define PLATFORM_NAME "Linux/Sparc" 187 #endif 188 189 #elif defined(linux) && (defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__)) 190 /* Linux on x86 - gcc compiler */ 191 #define LINUX_OS 192 #ifndef PLATFORM_NAME 193 #define PLATFORM_NAME "Linux/x86" 194 #endif 195 196 #elif defined(linux) && defined(__powerpc__) 197 /* Linux on PPC - gcc compiler */ 198 #define LINUX_OS 199 200 #if defined(__linux__) && defined(__powerpc__) 201 202 /* #if #system(linux) */ 203 /* MkLinux on PPC - gcc (egcs) compiler */ 204 /* #define MAC_OS_MKLINUX */ 205 #ifndef PLATFORM_NAME 206 #define PLATFORM_NAME "MkLinux" 207 #endif 208 209 #else 210 211 #ifndef PLATFORM_NAME 212 #define PLATFORM_NAME "Linux/PPC" 213 #endif 214 215 #endif 216 217 #elif defined(linux) || defined(__linux__) 218 /* generic Linux */ 219 #define LINUX_OS 220 #ifndef PLATFORM_NAME 221 #define PLATFORM_NAME "Linux" 222 #endif 223 224 #endif 225 226 /* Convenience defines for Solaris platforms */ 227 228 #if defined(sun) 229 #define SOLARIS_OS 230 #ifndef PLATFORM_NAME 231 #define PLATFORM_NAME "Solaris" 232 #endif 233 #endif 234 235 /* Convenience defines for HPUX + gcc platforms */ 236 237 #if defined(__hpux) 238 #define HPUX_OS 239 #ifndef PLATFORM_NAME 240 #define PLATFORM_NAME "HPUX" 241 #endif 242 #endif 243 244 /* Convenience defines for RISCOS + gcc platforms */ 245 246 #if defined(__riscos__) 247 #define RISC_OS 248 #ifndef PLATFORM_NAME 249 #define PLATFORM_NAME "RISC OS" 250 #endif 251 #endif 252 253 /* Convenience defines for OS/2 + icc/gcc platforms */ 254 255 #if defined(__OS2__) || defined(__EMX__) 256 #define OS2_OS 257 #ifndef PLATFORM_NAME 258 #define PLATFORM_NAME "OS/2" 259 #endif 260 #define FILENAMES_CASE_SENSITIVE 0 261 #define strcasecmp stricmp 262 #endif 263 264 /* Convenience defines for IRIX */ 265 266 #if defined(__sgi) 267 #define IRIX_OS 268 #ifndef PLATFORM_NAME 269 #define PLATFORM_NAME "SGI IRIX" 270 #endif 271 #endif 272 273 /* Convenience defines for AIX */ 274 275 #if defined(_AIX) 276 #define AIX_OS 277 #ifndef PLATFORM_NAME 278 #define PLATFORM_NAME "IBM AIX" 279 #endif 280 #endif 281 282 283 /* Convenience defines for BeOS platforms */ 284 285 #if defined(__BEOS__) 286 #define BE_OS 287 #ifndef PLATFORM_NAME 288 #define PLATFORM_NAME "BeOS" 289 #endif 290 #endif 291 292 /* Convenience defines for Cygwin platforms */ 293 294 #if defined(__CYGWIN__) 295 #define CYGWIN_OS 296 #ifndef PLATFORM_NAME 297 #define PLATFORM_NAME "Cygwin" 298 #endif 299 #define FILENAMES_CASE_SENSITIVE 0 300 #endif 301 302 /* Convenience defines for OpenVMS */ 303 304 #if defined(__VMS) 305 #define OPENVMS_OS 306 #ifndef PLATFORM_NAME 307 #define PLATFORM_NAME "OpenVMS" 308 #endif 309 #define FILENAMES_CASE_SENSITIVE 0 310 #endif 311 312 /* Convenience defines for DEC Alpha OSF + gcc platforms */ 313 314 #if defined(__osf__) 315 #define OSF_OS 316 #ifndef PLATFORM_NAME 317 #define PLATFORM_NAME "DEC Alpha OSF" 318 #endif 319 #endif 320 321 /* Convenience defines for ARM platforms */ 322 323 #if defined(__arm) 324 #define ARM_OS 325 326 #if defined(forARM) && defined(__NEWTON_H) 327 328 /* Using Newton C++ Tools ARMCpp compiler */ 329 #define NEWTON_OS 330 #ifndef PLATFORM_NAME 331 #define PLATFORM_NAME "Newton" 332 #endif 333 334 #else 335 336 #ifndef PLATFORM_NAME 337 #define PLATFORM_NAME "ARM" 338 #endif 339 340 #endif 341 342 #endif 343 344 #include <ctype.h> 345 #include <stdio.h> 346 #include <setjmp.h> /* for longjmp on error exit */ 347 #include <stdlib.h> 348 #include <stdarg.h> /* may need <varargs.h> for Unix V */ 349 #include <string.h> 350 #include <assert.h> 351 352 #ifdef NEEDS_MALLOC_H 353 #include <malloc.h> 354 #endif 355 356 #ifdef SUPPORT_GETPWNAM 357 #include <pwd.h> 358 #endif 359 360 #ifdef NEEDS_UNISTD_H 361 #include <unistd.h> /* needed for unlink on some Unix systems */ 362 #endif 363 364 /* This can be set at compile time. Usually Windows, 365 ** except for Macintosh builds. 366 */ 367 #ifndef DFLT_REPL_CHARENC 368 #define DFLT_REPL_CHARENC WIN1252 369 #endif 370 371 /* By default, use case-sensitive filename comparison. 372 */ 373 #ifndef FILENAMES_CASE_SENSITIVE 374 #define FILENAMES_CASE_SENSITIVE 1 375 #endif 376 377 378 /* 379 Tidy preserves the last modified time for the files it 380 cleans up. 381 */ 382 383 /* 384 If your platform doesn't support <utime.h> and the 385 utime() function, or <sys/futime> and the futime() 386 function then set PRESERVE_FILE_TIMES to 0. 387 388 If your platform doesn't support <sys/utime.h> and the 389 futime() function, then set HAS_FUTIME to 0. 390 391 If your platform supports <utime.h> and the 392 utime() function requires the file to be 393 closed first, then set UTIME_NEEDS_CLOSED_FILE to 1. 394 */ 395 396 /* Keep old PRESERVEFILETIMES define for compatibility */ 397 #ifdef PRESERVEFILETIMES 398 #undef PRESERVE_FILE_TIMES 399 #define PRESERVE_FILE_TIMES PRESERVEFILETIMES 400 #endif 401 402 #ifndef PRESERVE_FILE_TIMES 403 #if defined(RISC_OS) || defined(OPENVMS_OS) || defined(OSF_OS) 404 #define PRESERVE_FILE_TIMES 0 405 #else 406 #define PRESERVE_FILE_TIMES 1 407 #endif 408 #endif 409 410 #if PRESERVE_FILE_TIMES 411 412 #ifndef HAS_FUTIME 413 #if defined(CYGWIN_OS) || defined(BE_OS) || defined(OS2_OS) || defined(HPUX_OS) || defined(SOLARIS_OS) || defined(LINUX_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(IRIX_OS) || defined(AIX_OS) || defined(__BORLANDC__) 414 #define HAS_FUTIME 0 415 #else 416 #define HAS_FUTIME 1 417 #endif 418 #endif 419 420 #ifndef UTIME_NEEDS_CLOSED_FILE 421 #if defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(MAC_OS) || defined(__MSL__) || defined(LINUX_OS) 422 #define UTIME_NEEDS_CLOSED_FILE 1 423 #else 424 #define UTIME_NEEDS_CLOSED_FILE 0 425 #endif 426 #endif 427 428 #if defined(MAC_OS_X) || (!defined(MAC_OS_CLASSIC) && !defined(__MSL__)) 429 #include <sys/types.h> 430 #include <sys/stat.h> 431 #else 432 #include <stat.h> 433 #endif 434 435 #if HAS_FUTIME 436 #include <sys/utime.h> 437 #else 438 #include <utime.h> 439 #endif /* HASFUTIME */ 440 441 /* 442 MS Windows needs _ prefix for Unix file functions. 443 Not required by Metrowerks Standard Library (MSL). 444 445 Tidy uses following for preserving the last modified time. 446 447 WINDOWS automatically set by Win16 compilers. 448 _WIN32 automatically set by Win32 compilers. 449 */ 450 #if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__) 451 452 #define futime _futime 453 #define fstat _fstat 454 #define utimbuf _utimbuf /* Windows seems to want utimbuf */ 455 #define stat _stat 456 #define utime _utime 457 #define vsnprintf _vsnprintf 458 #endif /* _WIN32 */ 459 460 #endif /* PRESERVE_FILE_TIMES */ 461 462 /* 463 MS Windows needs _ prefix for Unix file functions. 464 Not required by Metrowerks Standard Library (MSL). 465 466 WINDOWS automatically set by Win16 compilers. 467 _WIN32 automatically set by Win32 compilers. 468 */ 469 #if defined(_WIN32) && !defined(__MSL__) && !defined(__BORLANDC__) 470 471 #ifndef __WATCOMC__ 472 #define fileno _fileno 473 #define setmode _setmode 474 #endif 475 476 #define access _access 477 #define strcasecmp _stricmp 478 479 #if _MSC_VER > 1000 480 #pragma warning( disable : 4189 ) /* local variable is initialized but not referenced */ 481 #pragma warning( disable : 4100 ) /* unreferenced formal parameter */ 482 #pragma warning( disable : 4706 ) /* assignment within conditional expression */ 483 #endif 484 485 #endif /* _WIN32 */ 486 487 #if defined(_WIN32) 488 489 #if (defined(_USRDLL) || defined(_WINDLL)) && !defined(TIDY_EXPORT) 490 #define TIDY_EXPORT __declspec( dllexport ) 491 #endif 492 493 #ifndef TIDY_CALL 494 #define TIDY_CALL __stdcall 495 #endif 496 497 #endif /* _WIN32 */ 498 499 /* hack for gnu sys/types.h file which defines uint and ulong */ 500 501 #if defined(BE_OS) || defined(SOLARIS_OS) || defined(BSD_BASED_OS) || defined(OSF_OS) || defined(IRIX_OS) || defined(AIX_OS) 502 #include <sys/types.h> 503 #endif 504 #if !defined(HPUX_OS) && !defined(CYGWIN_OS) && !defined(MAC_OS_X) && !defined(BE_OS) && !defined(SOLARIS_OS) && !defined(BSD_BASED_OS) && !defined(OSF_OS) && !defined(IRIX_OS) && !defined(AIX_OS) && !defined(LINUX_OS) 505 typedef unsigned int uint; 506 #endif 507 #if defined(HPUX_OS) || defined(CYGWIN_OS) || defined(MAC_OS) || defined(BSD_BASED_OS) || defined(_WIN32) 508 typedef unsigned long ulong; 509 #endif 510 511 #ifndef TIDY_EXPORT /* Define it away for most builds */ 512 #define TIDY_EXPORT 513 #endif 514 515 #ifndef TIDY_STRUCT 516 #define TIDY_STRUCT 517 #endif 518 519 typedef unsigned char byte; 520 521 typedef uint tchar; /* single, full character */ 522 typedef char tmbchar; /* single, possibly partial character */ 523 #ifndef TMBSTR_DEFINED 524 typedef tmbchar* tmbstr; /* pointer to buffer of possibly partial chars */ 525 typedef const tmbchar* ctmbstr; /* Ditto, but const */ 526 #define NULLSTR (tmbstr)"" 527 #define TMBSTR_DEFINED 528 #endif 529 530 #ifndef TIDY_CALL 531 #define TIDY_CALL 532 #endif 533 534 #if defined(__GNUC__) || defined(__INTEL_COMPILER) 535 # define ARG_UNUSED(x) x __attribute__((unused)) 536 #else 537 # define ARG_UNUSED(x) x 538 #endif 539 540 /* HAS_VSNPRINTF triggers the use of "vsnprintf", which is safe related to 541 buffer overflow. Therefore, we make it the default unless HAS_VSNPRINTF 542 has been defined. */ 543 #ifndef HAS_VSNPRINTF 544 # define HAS_VSNPRINTF 1 545 #endif 546 547 /* 548 bool is a reserved word in some but 549 not all C++ compilers depending on age 550 work around is to avoid bool altogether 551 by introducing a new enum called Bool 552 */ 553 /* We could use the C99 definition where supported 554 typedef _Bool Bool; 555 #define no (_Bool)0 556 #define yes (_Bool)1 557 */ 558 typedef enum 559 { 560 no, 561 yes 562 } Bool; 563 564 /* for NULL pointers 565 #define null ((const void*)0) 566 extern void* null; 567 */ 568 569 #if defined(DMALLOC) 570 #include "dmalloc.h" 571 #endif 572 573 void *MemAlloc(size_t size); 574 void *MemRealloc(void *mem, size_t newsize); 575 void MemFree(void *mem); 576 void ClearMemory(void *, size_t size); 577 void FatalError( ctmbstr msg ); 578 579 /* Opaque data structure. 580 * Cast to implementation type struct within lib. 581 * This will reduce inter-dependencies/conflicts w/ application code. 582 */ 583 #if 1 584 #define opaque_type( typenam )\ 585 struct _##typenam { int _opaque; };\ 586 typedef struct _##typenam* typenam 587 #else 588 #define opaque_type(typenam) typedef void* typenam 589 #endif 590 591 /* Opaque data structure used to pass back 592 ** and forth to keep current position in a 593 ** list or other collection. 594 */ 595 opaque_type( TidyIterator ); 596 597 #ifdef __cplusplus 598 } /* extern "C" */ 599 #endif 600 601 #endif /* __PLATFORM_H__ */ 602

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.