output.c

Upload User: acmefrp
Upload Date: 2010-03-06
Package Size: 23768k
Code Size: 1k
Category: OS Develop
Development Platform: C/C++
  1. #ifndef lint
  2. #ifdef sccs
  3. static  char sccsid[] = "@(#)output.c 1.1 92/07/30 Copyr 1985 Sun Micro";
  4. #endif
  5. #endif
  6. /*
  7.  * Copyright (c) 1985 by Sun Microsystems, Inc.
  8.  */
  9. #include <sunwindow/io_stream.h>
  10. #define Get_Output_Ops 
  11. struct output_ops_vector *ops;
  12. if (out->stream_type != Output) exit(1);
  13. ops = out->ops.output_ops
  14. static void
  15. stream_putstring();
  16. /* GENERIC OUTPUT FUNCTIONS */
  17. int
  18. stream_putc(c, out)
  19. char            c;
  20. STREAM         *out;
  21. {
  22. Get_Output_Ops;
  23. return ((*ops->str_putc) (c, out));
  24. }
  25. void
  26. stream_puts(s, out)
  27. char           *s;
  28. STREAM         *out;
  29. {
  30. stream_putstring(s, out, True);
  31. }
  32. void
  33. stream_fputs(s, out)
  34. char           *s;
  35. STREAM         *out;
  36. {
  37. stream_putstring(s, out, False);
  38. }
  39. static void
  40. stream_putstring(s, out, include_newline)
  41. char           *s;
  42. STREAM         *out;
  43. Bool            include_newline;
  44. {
  45. int             i;
  46. Get_Output_Ops;
  47. if (ops->str_fputs != NULL)
  48. (*ops->str_fputs) (s, out);
  49. else
  50. for (i = 0; s[i] != ''; i++)
  51. (*ops->str_putc) (s[i], out);
  52. if (include_newline)
  53. (*ops->str_putc) ('n', out);
  54. }
  55. void
  56. stream_flush(out)
  57. STREAM         *out;
  58. {
  59. void            (*fn) ();
  60. Get_Output_Ops;
  61. fn = ops->flush;
  62. if (fn != NULL)
  63. (*fn) (out);
  64. }