home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume2 / sbbs-editor < prev    next >
Internet Message Format  |  1991-08-07  |  8KB

  1. From: robertd@ncoast.UUCP (Rob DeMarco)
  2. Newsgroups: comp.sources.misc
  3. Subject: v02i048: SBBS "edit" update
  4. Message-ID: <7196@ncoast.UUCP>
  5. Date: 6 Feb 88 01:31:50 GMT
  6. Approved: allbery@ncoast.UUCP
  7.  
  8. Comp.sources.misc: Volume 2, Issue 48
  9. Submitted-By: "Rob DeMarco" <robertd@ncoast.UUCP>
  10. Archive-Name: sbbs-editor
  11.  
  12. [Now I know why he's been ragging me about *my* editor....  ++bsa]
  13.  
  14. Ok, this is a MUCH needed upgrade to the SBBS editor. Some bugs were fixed.
  15. Make sure that the resulting file help.editor is moved in the sbbs "misc"
  16. directory. This is used with the "?" command. Also make sure you read
  17. README.MOD1 and of course move "edit" to sbbs's "programs" directory.
  18.  
  19. All future modifications will be released to this news group. Do to some errors
  20. and problems, an SBBS SYSII will be posted to comp.sources.unix at the end
  21. of this year. But after then, any fixes and changes go to comp.source.misc.
  22. The latest version will always be available by my bbs at (216)-781-6201 (login
  23. "sbbs")
  24. #--------------------------------CUT HERE-------------------------------------
  25. #! /bin/sh
  26. #
  27. # This is a shell archive.  Save this into a file, edit it
  28. # and delete all lines above this comment.  Then give this
  29. # file to sh by executing the command "sh file".  The files
  30. # will be extracted into the current directory owned by
  31. # you with default permissions.
  32. #
  33. # The files contained herein are:
  34. #
  35. # -rw-r--r--   1 robertd  sbbs         231 Feb  4 21:28 README.MOD1
  36. # -rw-rw-rw-   1 robertd  sbbs        1019 Feb  4 21:24 help.editor
  37. # -rwxrwxrwx   1 robertd  sbbs        3376 Feb  4 21:23 edit
  38. #
  39. echo 'x - README.MOD1'
  40. if test -f README.MOD1; then echo 'mkshar: not overwriting README.MOD1'; else
  41. sed 's/^X//' << '________This_Is_The_END________' > README.MOD1
  42. XThis shell archive create a new
  43. Xeditor. This new editor is totally
  44. Xcompatable with the old. Some 
  45. Xbugs have been fix and arguments to
  46. Xthe L, E, I, and D have been allowed.
  47. X
  48. XA new editor help file help.editor
  49. Xreplaces the old ecom.
  50. ________This_Is_The_END________
  51. if test `wc -l < README.MOD1` -ne 8; then
  52.     echo 'mkshar: README.MOD1 was damaged during transit (should have been 8 bytes)'
  53. fi
  54. fi        ; : end of overwriting check
  55. echo 'x - help.editor'
  56. if test -f help.editor; then echo 'mkshar: not overwriting help.editor'; else
  57. sed 's/^X//' << '________This_Is_The_END________' > help.editor
  58. X   (A)bort message                      (D)elete line
  59. X   (E)dit a line                        (I)nsert at line
  60. X   (C)ontinue entering message          (S)ave message
  61. X   (P)roof read message(spell check)    (L)ist message
  62. X   (R)ot 13 / DeRot 13 a message.
  63. X
  64. XValid Ranges:
  65. X
  66. X    With the E)dit and I)nsert commands, you may include a number AFTER the
  67. Xletter command to stand for a line to apply that command. For instance,
  68. Xto edit line 4 of the message, type
  69. X         e4
  70. X    To insert before line 6, type
  71. X         i6
  72. X
  73. X    For the L)ist and D)elete commands, SBBS accepts a range. A range can be
  74. Xa simple number or a range of lines. It can be used directly after the command
  75. Xor in responce to a question.
  76. X    Valid ranges are:
  77. X
  78. X    n1,n2 (Line n1 through line n2)
  79. X    n1,$  (Line n1 through the end)
  80. X    1,n1  (Line 1 through line n1)
  81. X    1,$   (The entire message)
  82. X    /s1/s2/
  83. X          (The first line containing s1 through the first line containing s2)
  84. X
  85. X    You may also use - and + operators:
  86. X
  87. X    4-1,6+2  (3 though 8)
  88. ________This_Is_The_END________
  89. if test `wc -l < help.editor` -ne 30; then
  90.     echo 'mkshar: help.editor was damaged during transit (should have been 30 bytes)'
  91. fi
  92. fi        ; : end of overwriting check
  93. echo 'x - edit'
  94. if test -f edit; then echo 'mkshar: not overwriting edit'; else
  95. sed 's/^X//' << '________This_Is_The_END________' > edit
  96. X#! /bin/sh
  97. X# Editor
  98. X
  99. Xwhile : ; do
  100. Xarg=
  101. Xecho "SBBS Editor) \c"
  102. Xcmd=`line | tr -d "!" -d " "`
  103. Xarg="`echo \"$cmd\" | cut -c2-`"
  104. Xcmd="`echo \"$cmd\" | cut -c1`"
  105. X
  106. Xif [ "$cmd" = "" ];then
  107. X  continue
  108. Xfi
  109. X
  110. Xif [ "$cmd" = "?" ] ; then
  111. X  cat $dir/misc/help.editor
  112. X  continue
  113. Xfi
  114. X
  115. Xif [ $cmd = C -o $cmd = c ];then
  116. X  echo "(continue)"
  117. X  exit 1
  118. Xfi
  119. X
  120. Xif [ $cmd = P -o $cmd = p ];then
  121. X  echo "UNIX spell checker. Is not 100% accurate."
  122. X  echo "---------------{spelling errors}------"
  123. X  echo `sed -n '6,$p' $1|spell`
  124. X  continue
  125. Xfi
  126. X
  127. Xif [ $cmd = A -o $cmd = a ];then
  128. X  echo "---------ABORT---------"
  129. X  echo "Do you realy want to do this?"
  130. X  echo "<N>: \c"
  131. X  read yn
  132. X  yn=`echo $yn | cut -c1`
  133. X  if [ "$yn" = Y -o "$yn" = y ];then
  134. X    echo "-<ABORT>-"
  135. X    rm $1
  136. X    exit 2
  137. X  fi
  138. X  echo "ABORT was aborted."
  139. X  continue
  140. Xfi
  141. X
  142. Xif [ $cmd = S -o $cmd = s ];then
  143. X  echo "Saving message..."
  144. X  if [ "$2" != "" ];then
  145. X    $dir/programs/lock /tmp/sbbs.pst.lock
  146. X    ml=`ls $dir/bbs/$basen|wc -l`
  147. X    ml=`expr $ml + 1`
  148. X    cat $1 > $dir/bbs/$basen/$ml 
  149. X    rm $1
  150. X    rm /tmp/sbbs.pst.lock
  151. X  else
  152. X    exit 3
  153. X  fi
  154. X  echo "Message saved..."
  155. X  exit 
  156. Xfi
  157. X
  158. Xif [ $cmd = L -o $cmd = l ];then
  159. X  l=`cat $1|wc -l`
  160. X  l=`expr $l - 5`
  161. X  if [ $l -eq 0 ];then
  162. X    continue
  163. X  fi
  164. X  if [ -z "$arg" ] ; then
  165. X     arg='1,$'
  166. X  fi
  167. X
  168. X  file=/tmp/sbbs.tmp.$$
  169. Xed - $1 << 'EOS' >$file
  170. X6,$p
  171. XEOS
  172. Xed - $file << EOS
  173. X$arg n
  174. XEOS
  175. X  if [ $? -ne 0 ]; then
  176. X     echo "Can't understand range. Type \"?\" for help."
  177. X  fi
  178. X  rm $file
  179. X  continue
  180. Xfi
  181. X
  182. Xif [ $cmd = E -o $cmd = e ];then
  183. X  if [ -z "$arg" ]; then
  184. X     echo "Edit what line? \c"
  185. X     read l
  186. X     l=`echo $l`
  187. X     if [ "$l" = "" ];then
  188. X        continue
  189. X     fi
  190. X  else
  191. X     l=$arg
  192. X  fi
  193. X  l=`expr $l + 5 2> /dev/null`
  194. X  if [ $? -ne 0 ];then
  195. X     echo "Can't understand range. Type \"?\" for help."
  196. X     continue
  197. X  fi
  198. X  wc=`cat $1|wc -l`
  199. X  if [ $l -gt $wc ];then
  200. X     echo "A number 1 through `expr $wc - 5`, please."
  201. X     continue
  202. X  elif [ $l -lt 6 ];then
  203. X     echo "A number 1 through `expr $wc - 5`, please."
  204. X     continue
  205. X  fi
  206. X  echo "Old line reads"
  207. X  sed -n "${l}p" $1
  208. X  echo "Enter new line"
  209. X  qr=`line`
  210. X  ed - $1 <<- EOS
  211. X${l}a
  212. X$qr
  213. X.
  214. X${l}d
  215. Xw
  216. XEOS
  217. X     continue
  218. Xfi
  219. X
  220. Xif [ $cmd = D -o $cmd = d ];then
  221. X  if [ -z "$arg" ] ; then
  222. X     echo "Delete what line(s)? \c"
  223. X     read l
  224. X  else
  225. X     l=$arg
  226. X  fi
  227. X  sed -n '6,$p' $1 > /tmp/sbbs.tmp.$$
  228. Xed - $1 << \EOS
  229. X6,$d
  230. Xw
  231. XEOS
  232. X  sed "${l}d" /tmp/sbbs.tmp.$$ >> $1
  233. X  rm /tmp/sbbs.tmp.$$
  234. X  continue
  235. Xfi
  236. X
  237. Xif [ $cmd = I -o $cmd = i ] ; then
  238. X  if [ -z "$arg" ] ; then
  239. X     echo "Insert at what line? \c"
  240. X     read insert
  241. X  else
  242. X     insert=$arg
  243. X  fi
  244. X  insert=`expr $insert + 0 2> /dev/null`
  245. X  if [ $? -ne 0 ] ; then
  246. X    echo "A number 1 through `expr \`cat $1|wc -l\` - 5`, please."
  247. X    continue
  248. X  fi
  249. X  insert_limit=`cat $1 | wc -l`
  250. X  insert_limit=`expr $insert_limit - 5`
  251. X
  252. X  if [ $insert -gt $insert_limit -o $insert -lt 1 ];then
  253. X    echo "A number 1 through $insert_limit, please."
  254. X    continue
  255. X  fi
  256. X  echo "Start inserting now. Type CTRL-D on a\nblank line to get to editor."
  257. X  file=/tmp/sbbs.tpi.$$
  258. X  cat > $file
  259. X  {
  260. X   ed - $1 << EOS
  261. X   $insert+5,\$p
  262. X   $insert+5,\$d
  263. X   w
  264. XEOS
  265. X  } >> $file
  266. X  cat $file >> $1
  267. X  rm $file
  268. X  continue
  269. Xfi
  270. X
  271. Xif [ $cmd = R -o $cmd = r ] ; then
  272. X   file=/tmp/sbbs.rot.$$
  273. X   sed -n '1,5p' $1 > $file
  274. X   sed -n '6,$p' $1 | tr "[a-m][n-z][A-M][N-Z]" "[n-z][a-m][N-Z][A-M]" >> $file
  275. X   mv $file $1
  276. X   continue
  277. Xfi   
  278. Xecho "Illegal command."
  279. Xdone
  280. ________This_Is_The_END________
  281. if test `wc -l < edit` -ne 184; then
  282.     echo 'mkshar: edit was damaged during transit (should have been 184 bytes)'
  283. fi
  284. fi        ; : end of overwriting check
  285. exit 0
  286. -- 
  287. North Coast Computer Resources(ncoast) - 216-781-6201 (or 781-6202)
  288.  
  289. UUCP: ...uunet!amdahl!sun!mandrill!ncoast!robertd
  290.  
  291. Ever notice when you say "Pittsburgh",
  292. you can't help to add that silly
  293. ",P.A." at the end of it?
  294.