VirtualBox

Changeset 3229 in kBuild


Ignore:
Timestamp:
May 29, 2018 9:05:04 AM (7 years ago)
Author:
bird
Message:

kmk: build fixes

File:
1 edited

Legend:

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

    r3211 r3229  
    451451}
    452452
     453#endif /* CONFIG_WITH_OUTPUT_IN_MEMORY */
     454
    453455/* write/fwrite like function, text mode. */
    454456ssize_t
    455457output_write_text (struct output *out, int is_err, const char *src, size_t len)
    456458{
     459#ifdef CONFIG_WITH_OUTPUT_IN_MEMORY
    457460# if defined (KBUILD_OS_WINDOWS) || defined (KBUILD_OS_OS2) || defined (KBUILD_OS_DOS)
    458461  ssize_t ret = len;
     
    489492  return output_write_bin (out, is_err, src, len);
    490493# endif
    491 }
    492 
    493 #endif /* CONFIG_WITH_OUTPUT_IN_MEMORY */
     494#else
     495  ssize_t ret = len;
     496  if (! out || ! out->syncout)
     497    {
     498      FILE *f = is_err ? stderr : stdout;
     499# ifdef KBUILD_OS_WINDOWS
     500      maybe_con_fwrite(src, len, 1, f);
     501# else
     502      fwrite (src, len, 1, f);
     503# endif
     504      fflush (f);
     505    }
     506  else
     507    {
     508      int fd = is_err ? out->err : out->out;
     509      int r;
     510
     511      EINTRLOOP (r, lseek (fd, 0, SEEK_END));
     512      while (1)
     513        {
     514          EINTRLOOP (r, write (fd, src, len));
     515          if (r == len || r <= 0)
     516            break;
     517          len -= r;
     518          src += r;
     519        }
     520    }
     521  return ret;
     522#endif
     523}
     524
    494525
    495526
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette