home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2006 December / PCpro_2006_12.ISO / ossdvd / server / Perl2 / lib / core / dosish.h < prev    next >
Encoding:
C/C++ Source or Header  |  2002-06-19  |  4.2 KB  |  138 lines

  1. /*    dosish.h
  2.  *
  3.  *    Copyright (c) 1997-2002, Larry Wall
  4.  *
  5.  *    You may distribute under the terms of either the GNU General Public
  6.  *    License or the Artistic License, as specified in the README file.
  7.  *
  8.  */
  9.  
  10. #define ABORT() abort();
  11.  
  12. #ifndef SH_PATH
  13. #define SH_PATH "/bin/sh"
  14. #endif
  15.  
  16. #ifdef DJGPP
  17. #  define BIT_BUCKET "nul"
  18. #  define OP_BINARY O_BINARY
  19. #  define PERL_SYS_INIT(c,v) Perl_DJGPP_init(c,v)
  20. #  define init_os_extras Perl_init_os_extras
  21. #  include <signal.h>
  22. #  define HAS_UTIME
  23. #  define HAS_KILL
  24.    char *djgpp_pathexp (const char*);
  25.    void Perl_DJGPP_init (int *argcp,char ***argvp);
  26. #  if (DJGPP==2 && DJGPP_MINOR < 2)
  27. #    define NO_LOCALECONV_MON_THOUSANDS_SEP
  28. #  endif
  29. #  ifdef USE_5005THREADS
  30. #    define OLD_PTHREADS_API
  31. #  endif
  32. #  define PERL_FS_VER_FMT    "%d_%d_%d"
  33. #else    /* DJGPP */
  34. #  ifdef WIN32
  35. #    define PERL_SYS_INIT(c,v)    Perl_win32_init(c,v)
  36. #    define BIT_BUCKET "nul"
  37. #  else
  38. #     ifdef NETWARE
  39. #      define PERL_SYS_INIT(c,v)    Perl_nw5_init(c,v)
  40. #      define BIT_BUCKET "nwnul"
  41. #    else
  42. #      define PERL_SYS_INIT(c,v)
  43. #      define BIT_BUCKET "\\dev\\nul" /* "wanna be like, umm, Newlined, or somethin?" */
  44. #    endif /* NETWARE */
  45. #  endif
  46. #endif    /* DJGPP */
  47.  
  48. #define PERL_SYS_TERM() OP_REFCNT_TERM; MALLOC_TERM
  49. #define dXSUB_SYS
  50.  
  51. /*
  52.  * 5.003_07 and earlier keyed on #ifdef MSDOS for determining if we were 
  53.  * running on DOS, *and* if we had to cope with 16 bit memory addressing 
  54.  * constraints, *and* we need to have memory allocated as unsigned long.
  55.  *
  56.  * with the advent of *real* compilers for DOS, they are not locked together.
  57.  * MSDOS means "I am running on MSDOS". HAS_64K_LIMIT means "I have 
  58.  * 16 bit memory addressing constraints".
  59.  *
  60.  * if you need the last, try #DEFINE MEM_SIZE unsigned long.
  61.  */
  62. #ifdef MSDOS
  63.  #ifndef DJGPP
  64.   #define HAS_64K_LIMIT
  65.  #endif
  66. #endif
  67.  
  68. /* USEMYBINMODE
  69.  *    This symbol, if defined, indicates that the program should
  70.  *    use the routine my_binmode(FILE *fp, char iotype, int mode) to insure
  71.  *    that a file is in "binary" mode -- that is, that no translation
  72.  *    of bytes occurs on read or write operations.
  73.  */
  74. #undef USEMYBINMODE
  75.  
  76. /* Stat_t:
  77.  *    This symbol holds the type used to declare buffers for information
  78.  *    returned by stat().  It's usually just struct stat.  It may be necessary
  79.  *    to include <sys/stat.h> and <sys/types.h> to get any typedef'ed
  80.  *    information.
  81.  */
  82. #if defined(WIN64) || defined(USE_LARGE_FILES)
  83. #define Stat_t struct _stati64
  84. #else
  85. #define Stat_t struct stat
  86. #endif
  87.  
  88. /* USE_STAT_RDEV:
  89.  *    This symbol is defined if this system has a stat structure declaring
  90.  *    st_rdev
  91.  */
  92. #define USE_STAT_RDEV     /**/
  93.  
  94. /* ACME_MESS:
  95.  *    This symbol, if defined, indicates that error messages should be 
  96.  *    should be generated in a format that allows the use of the Acme
  97.  *    GUI/editor's autofind feature.
  98.  */
  99. #undef ACME_MESS    /**/
  100.  
  101. /* ALTERNATE_SHEBANG:
  102.  *    This symbol, if defined, contains a "magic" string which may be used
  103.  *    as the first line of a Perl program designed to be executed directly
  104.  *    by name, instead of the standard Unix #!.  If ALTERNATE_SHEBANG
  105.  *    begins with a character other then #, then Perl will only treat
  106.  *    it as a command line if it finds the string "perl" in the first
  107.  *    word; otherwise it's treated as the first line of code in the script.
  108.  *    (IOW, Perl won't hand off to another interpreter via an alternate
  109.  *    shebang sequence that might be legal Perl code.)
  110.  */
  111. /* #define ALTERNATE_SHEBANG "#!" / **/
  112.  
  113. /*
  114.  * fwrite1() should be a routine with the same calling sequence as fwrite(),
  115.  * but which outputs all of the bytes requested as a single stream (unlike
  116.  * fwrite() itself, which on some systems outputs several distinct records
  117.  * if the number_of_items parameter is >1).
  118.  */
  119. #define fwrite1 fwrite
  120.  
  121. #define Fstat(fd,bufptr)   fstat((fd),(bufptr))
  122. #ifdef DJGPP
  123. #   define Fflush(fp)      djgpp_fflush(fp)
  124. #else
  125. #   define Fflush(fp)      fflush(fp)
  126. #endif
  127. #define Mkdir(path,mode)   mkdir((path),(mode))
  128.  
  129. #ifndef WIN32
  130. #  define Stat(fname,bufptr) stat((fname),(bufptr))
  131. #else
  132. #  define HAS_IOCTL
  133. #  define HAS_UTIME
  134. #  define HAS_KILL
  135. #  define HAS_WAIT
  136. #  define HAS_CHOWN
  137. #endif    /* WIN32 */
  138.