Subversion Repositories Kolibri OS

Rev

Rev 4921 | Rev 6074 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (c) 1990 The Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Berkeley.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17. /* doc in sprintf.c */
  18.  
  19. #include <_ansi.h>
  20. #include <reent.h>
  21. #include <stdio.h>
  22. #include <stdarg.h>
  23. #include "local.h"
  24.  
  25. int __gui_mode;
  26.  
  27. int
  28. _DEFUN(_printf_r, (ptr, fmt),
  29.        struct _reent *ptr _AND
  30.        const char *__restrict fmt _DOTS)
  31. {
  32.   int ret;
  33.   va_list ap;
  34.  
  35.   _REENT_SMALL_CHECK_INIT (ptr);
  36.   va_start (ap, fmt);
  37.   ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap);
  38.   va_end (ap);
  39.   return ret;
  40. }
  41.  
  42. #ifndef _REENT_ONLY
  43.  
  44. int
  45. _DEFUN(printf, (fmt),
  46.        const char *__restrict fmt _DOTS)
  47. {
  48.   int ret;
  49.   va_list ap;
  50.   struct _reent *ptr = _REENT;
  51.  
  52.   _REENT_SMALL_CHECK_INIT (ptr);
  53.   va_start (ap, fmt);
  54.   ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap);
  55.   va_end (ap);
  56.   return ret;
  57. }
  58.  
  59. #endif /* ! _REENT_ONLY */
  60.  
  61. extern int __gui_mode;
  62.  
  63. extern void __attribute__ ((constructor)) __init_conio();
  64. static void __attribute__ ((constructor)) init_printf()
  65. {
  66.     __gui_mode = (int)&__init_conio;
  67. }
  68.