VirtualBox

Changeset 2904 in kBuild


Ignore:
Timestamp:
Sep 9, 2016 5:38:54 PM (9 years ago)
Author:
bird
Message:

kmk: faster messages.

File:
1 edited

Legend:

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

    r2745 r2904  
    296296  if (fmt != 0)
    297297    {
     298#ifdef KBUILD_OS_WINDOWS
     299      char szMsg[16384];
     300      int cchMsg = 0;
     301      int cchUser;
     302      if (prefix)
     303        {
     304          if (makelevel == 0)
     305            cchMsg = snprintf (szMsg, sizeof(szMsg), "%s: ", program);
     306          else
     307            cchMsg = snprintf (szMsg, sizeof(szMsg), "%s[%u]: ", program, makelevel);
     308        }
     309      VA_START (args, fmt);
     310      cchMsg += cchUser = vsnprintf (&szMsg[cchMsg], sizeof(szMsg) - cchMsg, fmt, args);
     311      VA_END (args);
     312      if (   cchMsg < sizeof(szMsg)
     313          && cchUser >= 0)
     314        {
     315          extern size_t maybe_con_fwrite(void const *, size_t, size_t, FILE *);
     316          szMsg[cchMsg++] = '\n';
     317          maybe_con_fwrite(szMsg, cchMsg, 1, stdout);
     318        }
     319      else
     320        {
     321#endif
    298322      if (prefix)
    299323        {
     
    307331      VA_END (args);
    308332      putchar ('\n');
     333#ifdef KBUILD_OS_WINDOWS
     334        }
     335#endif
    309336    }
    310337
     
    327354  va_list args;
    328355#endif
     356#ifdef KMK
     357  char szMsg[16384];
     358  int cchMsg = 0;
     359  int cchUser;
     360#endif
    329361
    330362  log_working_directory (1);
     363
     364#ifdef KMK /* Try avoid getting the error split by child output.  */
     365  if (flocp && flocp->filenm)
     366    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s:%lu: ", flocp->filenm, flocp->lineno);
     367  else if (makelevel == 0)
     368    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s: ", program);
     369  else
     370    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s[%u]: ", program, makelevel);
     371
     372  VA_START (args, fmt);
     373  cchMsg += cchUser = vsnprintf (&szMsg[cchMsg], sizeof(szMsg) - cchMsg, fmt, args);
     374  VA_END (args);
     375  if (   cchMsg < sizeof(szMsg)
     376      && cchUser >= 0)
     377    {
     378      extern size_t maybe_con_fwrite(void const *, size_t, size_t, FILE *);
     379      szMsg[cchMsg++] = '\n';
     380      maybe_con_fwrite(szMsg, cchMsg, 1, stderr);
     381    }
     382  else
     383    {
     384#endif /* KMK */
    331385
    332386  if (flocp && flocp->filenm)
     
    342396
    343397  putc ('\n', stderr);
     398#ifdef KMK
     399    }
     400#endif
    344401  fflush (stderr);
    345402}
     
    360417  va_list args;
    361418#endif
     419#ifdef KMK
     420  char szMsg[16384];
     421  int cchMsg = 0;
     422  int cchUser;
     423  const char *pszStop = _(".  Stop.\n");
     424  int         cchStop = (int)strlen(pszStop);
     425#endif
    362426
    363427  log_working_directory (1);
    364428
     429#ifdef KMK /* Try avoid getting the error split by child output.  */
     430  if (flocp && flocp->filenm)
     431    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s:%lu: *** ", flocp->filenm, flocp->lineno);
     432  else if (makelevel == 0)
     433    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s: *** ", program);
     434  else
     435    cchMsg = snprintf (szMsg, sizeof(szMsg), "%s[%u]: *** ", program, makelevel);
     436
     437  VA_START (args, fmt);
     438  cchMsg += cchUser = vsnprintf (&szMsg[cchMsg], sizeof(szMsg) - cchMsg, fmt, args);
     439  VA_END (args);
     440  if (   cchMsg + cchStop <= sizeof(szMsg)
     441      && cchUser >= 0)
     442    {
     443      extern size_t maybe_con_fwrite(void const *, size_t, size_t, FILE *);
     444      memcpy(&szMsg[cchMsg], pszStop, cchStop);
     445      cchMsg += cchStop;
     446      maybe_con_fwrite(szMsg, cchMsg, 1, stderr);
     447    }
     448  else
     449    {
     450#endif /* KMK */
    365451  if (flocp && flocp->filenm)
    366452    fprintf (stderr, "%s:%lu: *** ", flocp->filenm, flocp->lineno);
     
    375461
    376462  fputs (_(".  Stop.\n"), stderr);
     463#ifdef KMK
     464    }
     465#endif
    377466
    378467  die (2);
Note: See TracChangeset for help on using the changeset viewer.

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