/packages/libc/src/libio.inc

https://github.com/slibre/freepascal · Pascal · 83 lines · 52 code · 17 blank · 14 comment · 4 complexity · 5538dcfdccd38ca38391641f62884f2a MD5 · raw file

  1. { ---------------------------------------------------------------------
  2. Macros from libio.h
  3. ---------------------------------------------------------------------}
  4. Function _IO_getc_unlocked(_fp: P_IO_FILE): longint;
  5. begin
  6. if _fp^._IO_read_ptr>=_fp^._IO_read_end then
  7. Result:=__uflow(_fp)
  8. else
  9. begin
  10. Result:=PByte(_fp^._IO_read_ptr)^;
  11. Inc(_fp^._IO_read_ptr);
  12. end;
  13. end;
  14. Function _IO_peekc_unlocked(_fp: P_IO_FILE): longint;
  15. begin
  16. if (_fp^._IO_read_ptr>=_fp^._IO_read_end) and (__underflow(_fp) = __EOF) then
  17. Result:=__EOF
  18. else
  19. Result:=PByte(_fp^._IO_read_ptr)^;
  20. end;
  21. Function _IO_putc_unlocked(_ch: Char; _fp: P_IO_FILE): longint;
  22. begin
  23. if _fp^._IO_write_ptr>=_fp^._IO_write_end then
  24. Result:=__overflow(_fp, Byte(_ch))
  25. else
  26. begin
  27. Result:=Byte(_ch);
  28. _fp^._IO_write_ptr^:=_ch;
  29. Inc(_fp^._IO_write_ptr);
  30. end;
  31. end;
  32. Function _IO_getwc_unlocked(_fp: P_IO_FILE): longint;
  33. begin
  34. if Cardinal(_fp^._wide_data^._IO_read_ptr)>=Cardinal(_fp^._wide_data^._IO_read_end) then
  35. Result:=__wuflow(_fp)
  36. else
  37. begin
  38. //!! MVC Result:=_fp^._wide_data^._IO_read_ptr^;
  39. Inc(_fp^._wide_data^._IO_read_ptr);
  40. end;
  41. end;
  42. Function _IO_putwc_unlocked(_wch: wchar_t; _fp: P_IO_FILE): longint;
  43. begin
  44. { //!! MVC
  45. if Cardinal(_fp^._wide_data^._IO_write_ptr)>=Cardinal(_fp^._wide_data^._IO_write_end) then
  46. Result:=__woverflow(_fp, _wch)
  47. else
  48. begin
  49. Result:=_wch;
  50. _fp^._wide_data^._IO_write_ptr^:=_wch;
  51. Inc(_fp^._wide_data^._IO_write_ptr);
  52. end;
  53. }
  54. end;
  55. Function _IO_feof_unlocked(_fp: P_IO_FILE): longint;
  56. begin
  57. Result:=Ord((_fp^._flags and _IO_EOF_SEEN)<>0);
  58. end;
  59. Function _IO_ferror_unlocked(_fp: P_IO_FILE): longint;
  60. begin
  61. Result:=Ord((_fp^._flags and _IO_ERR_SEEN)<>0);
  62. end;
  63. Function _IO_PENDING_OUTPUT_COUNT(_fp: P_IO_FILE): longint;
  64. begin
  65. Result:=(_fp^._IO_write_ptr)-(_fp^._IO_write_base);
  66. end;