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

编辑器/阅读器

开发平台:

DOS

  1. #include <ctype.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. comand()
  5. {
  6. #include "teco.h"
  7. char last,this;
  8. int  tmp;
  9. reset: memset(getbuf,'33',getsiz);
  10. getptr=0;
  11. last=0;
  12. while (kbhit()) getch();
  13. fprintf(stderr,"*");
  14. loop: tmp=getch();
  15. this=toascii(tmp);
  16. if (this != 27 | last != 27) {
  17. if (this == 8 | this == 127) {
  18. if (!getptr) {
  19. fprintf(stderr,"n");
  20. goto reset;
  21. }
  22. if (getbuf[getptr] == 13 | getbuf[getptr] == 9) {
  23. if (getbuf[getptr] == 9) fprintf(stderr,"n");
  24. tmp=getptr;
  25. while (getbuf[--tmp] != 13 & tmp != 0);
  26. while (++tmp != getptr) echo(getbuf[tmp]);
  27. } else {
  28. if (getbuf[getptr]<32 & getbuf[getptr]!=27) {
  29. fprintf(stderr,"10 1010 10");
  30. } else {
  31. fprintf(stderr,"10 10");
  32. }
  33. }
  34. getbuf[getptr]='';
  35. getptr=getptr-1;
  36. goto loop;
  37. } else {
  38. echo(this);
  39. if (this == 21) {
  40. if (!getptr) {
  41. fprintf(stderr,"n");
  42. goto reset;
  43. }
  44. tmp=getptr;
  45. while (getbuf[tmp] !=13 & --tmp !=0);
  46. if (!tmp) {
  47. fprintf(stderr,"n");
  48. goto reset;
  49. }
  50. getptr=tmp;
  51. echo('15');
  52. } else {
  53. if (getptr > getsiz) {
  54.    fprintf(stderr,"?MEM, Memory overflown7");
  55.    goto reset;
  56. }
  57. getbuf[++getptr]=this;
  58. if (this == 13) {
  59. this=10;
  60. getbuf[++getptr]=this;
  61. }
  62. }
  63. last=this;
  64. goto loop;
  65. }
  66. }
  67. fprintf(stderr,"$n");
  68. }