fork(1) download
  1. #include <u.h>
  2. #include <libc.h>
  3. #include <bio.h>
  4.  
  5. const Rune lg = 0x0300;
  6. const Rune hg = 0x036F;
  7.  
  8. int
  9. ismark(Rune r)
  10. {
  11. return r >= lg && r <= hg;
  12. }
  13.  
  14. int
  15. clusterize(Biobuf *in, Biobuf *out)
  16. {
  17. int i;
  18. Rune r;
  19. i = 0;
  20.  
  21. r = Bgetrune(in);
  22. if (r == (Rune)Beof)
  23. return 0;
  24.  
  25. Bputrune(out, r);
  26. i = 1;
  27.  
  28. while ((r = Bgetrune(in)) != (Rune)Beof)
  29. if (ismark(r)) {
  30. i++;
  31. Bputrune(out, r);
  32. } else {
  33. Bungetrune(in);
  34. break;
  35. }
  36. return i;
  37. }
  38.  
  39. void
  40. main(void)
  41. {
  42. int count;
  43. int runes;
  44. Biobuf bstdin, bstdout;
  45. if (Binit(&bstdin, 0, OREAD) == Beof) {
  46. fprint(2, "can't connect stdin to bio: %r");
  47. exits("Binit");
  48. }
  49. if (Binit(&bstdout, 1, OWRITE) == Beof) {
  50. fprint(2, "can't connect stdout to bio: %r");
  51. exits("Binit");
  52. }
  53. count = 0;
  54. while ((runes = clusterize(&bstdin, &bstdout)) != 0) {
  55. Bprint(&bstdout, "\n\n runes: %d\n\n", runes);
  56. count++;
  57. }
  58. Bterm(&bstdin);
  59. Bterm(&bstdout);
  60. print("\n\nlen: %d\n", count);
  61. exits(0);
  62. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:1:15: fatal error: u.h: No such file or directory
 #include <u.h>
               ^
compilation terminated.
stdout
Standard output is empty