Changeset 3211 for trunk/src/kmk


Ignore:
Timestamp:
Mar 29, 2018, 5:00:52 PM (7 years ago)
Author:
bird
Message:

kmk/output.c: membuf_dump must set stdout+stderr to _O_BINARY while dumping buffered stuff, as it already has be subject to \n -> \r\n conversion and doesn't benefit from doing it again.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/output.c

    r3200 r3211  
    9393         We want to keep this lock for as little time as possible.  */
    9494      void *sem = acquire_semaphore ();
     95# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
     96      int prev_mode_out = _setmode (fileno (stdout), _O_BINARY);
     97      int prev_mode_err = _setmode (fileno (stderr), _O_BINARY);
     98# endif
    9599
    96100# ifndef KMK /* this drives me bananas. */
     
    161165
    162166      /* Exit the critical section.  */
     167# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
     168      _setmode (fileno (stdout), prev_mode_out);
     169      _setmode (fileno (stderr), prev_mode_err);
     170# endif
    163171      if (sem)
    164172        release_semaphore (sem);
     
    404412    {
    405413      FILE *f = is_err ? stderr : stdout;
    406 # ifdef KBUILD_OS_WINDOWS
    407       /* On windows we need to disable \n -> \r\n converts that is common on
     414# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
     415      /* On DOS platforms we need to disable \n -> \r\n converts that is common on
    408416         standard output/error.  Also optimize for console output. */
    409417      int saved_errno;
     
    692700#endif
    693701
    694 #ifdef WINDOWS32
     702# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
    695703  int prev_mode;
    696704
     
    719727    }
    720728
    721 #ifdef WINDOWS32
     729# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
    722730  /* Switch "to" back to its original mode, so that log messages by
    723731     Make have the same EOL format as without --output-sync.  */
Note: See TracChangeset for help on using the changeset viewer.