ECHO.C
上传用户:xiantiandi
上传日期:2007-01-06
资源大小:21k
文件大小:1k
源码类别:

编辑器/阅读器

开发平台:

DOS

  1. #include <ctype.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. static char last='';
  5. static char this='';
  6. echo(c) /* Echo char appropriately on console */
  7. {
  8. #include "teco.h"
  9. if (cancel) return; /* Skip if ^O sent */
  10. this=toascii(c); /* Mask off parity */
  11. if (this == 27) { /* Check for <ESC> */
  12. this='$'; /*  ..if so echo $ */
  13. } else { /* Else process it */
  14. if (iscntrl(this)) {
  15. if (this == 10) {
  16. if (last == 13) {
  17. last=this;
  18. return;
  19. } else {
  20. fprintf(stderr,"n");
  21. goto check;
  22. }
  23. } else {
  24. if (this == 13) {
  25. fprintf(stderr,"n");
  26. goto check;
  27. }
  28. if (this == 9) {
  29. fprintf(stderr,"11");
  30. goto check;
  31. } else {
  32. fprintf(stderr,"^");
  33. this=this+64;
  34. }
  35. }
  36. }
  37. }
  38. fprintf(stderr,"%c",this);
  39. last=this;
  40. return;
  41. check: last=this;
  42. if (kbhit()) {
  43. if (15 == toascii(getch())) {
  44. cancel=1;
  45. fprintf(stderr,"^On");
  46. }
  47. }
  48. }