Subversion Repositories Kolibri OS

Rev

Blame | 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.  
  18. #include <_ansi.h>
  19. #include <reent.h>
  20. #include <stdio.h>
  21. #ifdef _HAVE_STDC
  22. #include <stdarg.h>
  23. #else
  24. #include <varargs.h>
  25. #endif
  26. #include "local.h"
  27.  
  28. #ifndef _REENT_ONLY
  29.  
  30. int
  31. #ifdef _HAVE_STDC
  32. scanf(_CONST char *__restrict fmt, ...)
  33. #else
  34. scanf(fmt, va_alist)
  35.       char *fmt;
  36.       va_dcl
  37. #endif
  38. {
  39.   int ret;
  40.   va_list ap;
  41.   struct _reent *reent = _REENT;
  42.  
  43.   _REENT_SMALL_CHECK_INIT (reent);
  44. #ifdef _HAVE_STDC
  45.   va_start (ap, fmt);
  46. #else
  47.   va_start (ap);
  48. #endif
  49.   ret = _vfscanf_r (reent, _stdin_r (reent), fmt, ap);
  50.   va_end (ap);
  51.   return ret;
  52. }
  53.  
  54. #ifdef _NANO_FORMATTED_IO
  55. int
  56. _EXFUN(iscanf, (const char *, ...)
  57.        _ATTRIBUTE ((__alias__("scanf"))));
  58. #endif
  59.  
  60. #endif /* !_REENT_ONLY */
  61.  
  62. int
  63. #ifdef _HAVE_STDC
  64. _scanf_r(struct _reent *ptr, _CONST char *__restrict fmt, ...)
  65. #else
  66. _scanf_r(ptr, fmt, va_alist)
  67.          struct _reent *ptr;
  68.          char *fmt;
  69.          va_dcl
  70. #endif
  71. {
  72.   int ret;
  73.   va_list ap;
  74.  
  75.   _REENT_SMALL_CHECK_INIT (ptr);
  76. #ifdef _HAVE_STDC
  77.   va_start (ap, fmt);
  78. #else
  79.   va_start (ap);
  80. #endif
  81.   ret = _vfscanf_r (ptr, _stdin_r (ptr), fmt, ap);
  82.   va_end (ap);
  83.   return (ret);
  84. }
  85.  
  86. #ifdef _NANO_FORMATTED_IO
  87. int
  88. _EXFUN(_iscanf_r, (struct _reent *, const char *, ...)
  89.        _ATTRIBUTE ((__alias__("_scanf_r"))));
  90. #endif
  91.