home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume20 / rc / part03 / CHANGES next >
Encoding:
Text File  |  1991-05-22  |  2.3 KB  |  90 lines

  1. Bugs and changes since version 0.9:
  2.  
  3. -----
  4. A pipe with a null first command caused rc to dump core. e.g.,
  5.  
  6.     |;
  7. -----
  8. When fifo redirection was used with builtin commands, rc would hang:
  9.  
  10.     diff <{echo hi} <{echo bye}
  11.  
  12. a missing exit() was the cause of all this
  13. -----
  14. A double backquote operator was added to make inlining of ifs-type material
  15. possible; thus
  16.  
  17.     `` ($ifs / :) command
  18.  
  19. is the same as
  20.  
  21.     ifs=($ifs / :)
  22.     ` command
  23.  
  24. only without the assignment.
  25. -----
  26. An "rc error" (e.g., trying to evaluate $()) inside a function messed up
  27. rc's interactive state, i.e., it stopped printing prompts.
  28.  
  29.     fn foo { echo $() }
  30.  
  31. this was fixed by adding full-fledged exception handling, with a separate
  32. exception stack
  33. -----
  34. rc did not raise sigexit from the builtin "exit".
  35. -----
  36. rc assumed the existence of getgroups(). Also, a typo in
  37. the getgroups() code in which.c was fixed.
  38. -----
  39. rc now sets $0 to the name of the function being called or the file being
  40. interpreted by dot.
  41. -----
  42. if - else statements were incorrectly exported into the environment
  43. -----
  44. rc now has stubs for GNU readline compatability. (compile -DREADLINE)
  45. -----
  46. rc used to use a single arena for temporary space which got clobbered if there
  47. was a command of the form:
  48.  
  49.     eval foo ; bar
  50.  
  51. since the eval would cause rc to prematurely recycle that memory. I fixed
  52. this by adding support for multiple arenas.
  53. -----
  54. an assignment inside a compound command clobbered the global definition
  55. of a variable:
  56.  
  57.     foo=a
  58.     foo=b { stuff; foo=c; stuff }
  59.  
  60. $foo was set to () after this.
  61. -----
  62. rc -e now is much more sh-like. In particular
  63.  
  64.     false || echo bletch
  65.  
  66. now does the right thing.
  67. -----
  68. rc did not print $prompt(2) while scanning heredocs
  69. -----
  70. exec with a redirection but without other arguments now does the
  71. same thing as sh, i.e., it alters rc's own file descriptors
  72. -----
  73. the command
  74.  
  75.     eval eval eval [200 times or so] echo hi
  76.  
  77. would cause rc to allocate obnoxious amounts of memory. This has
  78. been cleaned up.
  79. -----
  80. rc how has full support for *all* signals, not just sigquit, sigint
  81. and sighup and sigterm. Additionally, the signal code is generated via
  82. an awk script operating on /usr/include/signal.h, so that rc "learns"
  83. about the signals of a particular machine at compile time.
  84. -----
  85. rc now supports "fn prompt", a function that gets executed before
  86. each $prompt(1) is printed.
  87. -----
  88. ~ () '' incorrectly returned a true status.
  89. -----
  90.