ufos 1.0.77 → 1.0.82

Sign up to get free protection for your applications and to get access to all the features.
Files changed (612) hide show
  1. checksums.yaml +4 -4
  2. data/CYCLE_OF_ETHICAL_BEHAVIOR +7 -0
  3. data/EXAMPLES_OF_OPERATION.html +6132 -0
  4. data/FOR_ARTIFICIAL_GENERAL_INTELLIGENCES +1 -6
  5. data/PP.rb +4 -4
  6. data/QUESTION +0 -2
  7. data/README.md +76 -79
  8. data/VERSION_NUMBER +1 -1
  9. data/bin/DISCOURSE_GENERATOR.exe +0 -0
  10. data/bin/abs +0 -0
  11. data/bin/add +0 -0
  12. data/bin/append +0 -0
  13. data/bin/args +0 -0
  14. data/bin/big_num +3 -0
  15. data/bin/chat_rb +6 -18
  16. data/bin/clock +0 -0
  17. data/bin/close +1 -1
  18. data/bin/copy +0 -0
  19. data/bin/delete +0 -0
  20. data/bin/div +0 -0
  21. data/bin/email +0 -13
  22. data/bin/emerald-browser +0 -0
  23. data/bin/exp +0 -0
  24. data/bin/find_housing +1 -1
  25. data/bin/floor +0 -0
  26. data/bin/gsub +0 -0
  27. data/bin/gsubip +0 -0
  28. data/bin/last_nth +0 -0
  29. data/bin/left_right +0 -0
  30. data/bin/lines +0 -0
  31. data/bin/mul +0 -0
  32. data/bin/nth +0 -0
  33. data/bin/nth_word +0 -0
  34. data/bin/prepend +0 -0
  35. data/bin/quot +7 -6
  36. data/bin/rgsub +0 -0
  37. data/bin/rip +0 -0
  38. data/bin/rnip +0 -0
  39. data/bin/selectlines +0 -0
  40. data/bin/sub +0 -0
  41. data/bin/swap +0 -0
  42. data/bin/trim +0 -0
  43. data/documentation/DISCOURSE_GENERATOR.exe +1 -1
  44. data/documentation/ULTIMATE_CHAT_APPLICATION.exe +1 -1
  45. data/documentation/abs +3 -11
  46. data/documentation/add +1 -5
  47. data/documentation/append +1 -3
  48. data/documentation/black +0 -1
  49. data/documentation/black_bold +0 -1
  50. data/documentation/black_bold_underline +0 -1
  51. data/documentation/black_underline +0 -1
  52. data/documentation/blue +0 -1
  53. data/documentation/blue_bold +0 -1
  54. data/documentation/blue_bold_underline +0 -1
  55. data/documentation/blue_underline +0 -1
  56. data/documentation/bold +1 -1
  57. data/documentation/chat_rb +1 -9
  58. data/documentation/clock +1 -16
  59. data/documentation/close +2 -2
  60. data/documentation/cyan +0 -1
  61. data/documentation/cyan_bold +0 -1
  62. data/documentation/cyan_bold_underline +0 -1
  63. data/documentation/cyan_underline +0 -1
  64. data/documentation/delete +2 -0
  65. data/documentation/dictate +1 -2
  66. data/documentation/div +1 -7
  67. data/documentation/email +2 -20
  68. data/documentation/emerald-browser +1 -2
  69. data/documentation/emeraldc +22 -47
  70. data/documentation/emoji +1 -4
  71. data/documentation/exp +1 -1
  72. data/documentation/find_housing +1 -1
  73. data/documentation/floor +1 -1
  74. data/documentation/g+ +1 -3
  75. data/documentation/google_speak +2 -2
  76. data/documentation/green +0 -1
  77. data/documentation/green_bold +0 -1
  78. data/documentation/green_bold_underline +0 -1
  79. data/documentation/green_underline +0 -1
  80. data/documentation/gsub +3 -7
  81. data/documentation/gsubip +1 -1
  82. data/documentation/last_nth +9 -1
  83. data/documentation/left_right.exe +1 -6
  84. data/documentation/lines +1 -3
  85. data/documentation/magenta +0 -1
  86. data/documentation/magenta_bold +0 -1
  87. data/documentation/magenta_bold_underline +0 -1
  88. data/documentation/magenta_underline +0 -1
  89. data/documentation/mul +2 -4
  90. data/documentation/nth +1 -1
  91. data/documentation/nth_word +8 -0
  92. data/documentation/open +4 -23
  93. data/documentation/page +43 -43
  94. data/documentation/prepend +2 -20
  95. data/documentation/processes +1 -5
  96. data/documentation/red +0 -1
  97. data/documentation/red_bold +0 -1
  98. data/documentation/red_bold_underline +0 -1
  99. data/documentation/red_underline +0 -1
  100. data/documentation/rgsub +8 -13
  101. data/documentation/rhyme +4 -11
  102. data/documentation/rip +1 -2
  103. data/documentation/rnip +1 -1
  104. data/documentation/selectlines +1 -7
  105. data/documentation/speakcat +2 -2
  106. data/documentation/squeeze +0 -1
  107. data/documentation/sub +2 -3
  108. data/documentation/swap +0 -2
  109. data/documentation/t +3 -12
  110. data/documentation/trim +2 -0
  111. data/documentation/underline +1 -1
  112. data/documentation/white +0 -1
  113. data/documentation/white_bold +0 -1
  114. data/documentation/white_bold_underline +0 -1
  115. data/documentation/white_underline +0 -1
  116. data/documentation/yellow +0 -1
  117. data/documentation/yellow_bold +0 -1
  118. data/documentation/yellow_bold_underline +0 -1
  119. data/documentation/yellow_underline +0 -1
  120. data/epistemology +334 -0
  121. data/gem_data/VERSION_NUMBER +1 -1
  122. data/index.html +117 -113
  123. data/non_compiled_programs/big_num +3 -0
  124. data/non_compiled_programs/chat_rb +6 -18
  125. data/non_compiled_programs/close +1 -1
  126. data/non_compiled_programs/copy +1 -0
  127. data/non_compiled_programs/email +0 -13
  128. data/non_compiled_programs/find_housing +1 -1
  129. data/non_compiled_programs/quot +7 -6
  130. data/other/ADDITIONAL_WAYS_PEOPLE_CAN_FIND_THIS +6 -1
  131. data/other/emerald-browser/Makefile +1 -1
  132. data/other/emerald-browser/OUT +6 -0
  133. data/other/emerald-browser/a.o +0 -0
  134. data/other/emerald-browser/qmake +0 -0
  135. data/other/rub +35 -0
  136. data/other/stories/1 +15 -0
  137. data/other/stories/10 +17 -0
  138. data/other/stories/100 +17 -0
  139. data/other/stories/1000 +17 -0
  140. data/other/stories/1001 +17 -0
  141. data/other/stories/101 +15 -0
  142. data/other/stories/102 +15 -0
  143. data/other/stories/103 +13 -0
  144. data/other/stories/104 +17 -0
  145. data/other/stories/105 +11 -0
  146. data/other/stories/106 +13 -0
  147. data/other/stories/107 +15 -0
  148. data/other/stories/108 +15 -0
  149. data/other/stories/109 +13 -0
  150. data/other/stories/11 +13 -0
  151. data/other/stories/110 +17 -0
  152. data/other/stories/111 +11 -0
  153. data/other/stories/112 +13 -0
  154. data/other/stories/113 +11 -0
  155. data/other/stories/114 +15 -0
  156. data/other/stories/115 +15 -0
  157. data/other/stories/116 +13 -0
  158. data/other/stories/117 +17 -0
  159. data/other/stories/118 +19 -0
  160. data/other/stories/119 +15 -0
  161. data/other/stories/12 +19 -0
  162. data/other/stories/120 +15 -0
  163. data/other/stories/121 +15 -0
  164. data/other/stories/122 +11 -0
  165. data/other/stories/123 +23 -0
  166. data/other/stories/124 +17 -0
  167. data/other/stories/125 +19 -0
  168. data/other/stories/126 +15 -0
  169. data/other/stories/127 +17 -0
  170. data/other/stories/128 +17 -0
  171. data/other/stories/129 +15 -0
  172. data/other/stories/13 +13 -0
  173. data/other/stories/130 +19 -0
  174. data/other/stories/131 +17 -0
  175. data/other/stories/132 +11 -0
  176. data/other/stories/133 +13 -0
  177. data/other/stories/134 +17 -0
  178. data/other/stories/135 +15 -0
  179. data/other/stories/136 +15 -0
  180. data/other/stories/137 +15 -0
  181. data/other/stories/138 +17 -0
  182. data/other/stories/139 +9 -0
  183. data/other/stories/14 +11 -0
  184. data/other/stories/140 +13 -0
  185. data/other/stories/141 +15 -0
  186. data/other/stories/142 +11 -0
  187. data/other/stories/143 +13 -0
  188. data/other/stories/144 +21 -0
  189. data/other/stories/145 +11 -0
  190. data/other/stories/146 +11 -0
  191. data/other/stories/147 +13 -0
  192. data/other/stories/148 +17 -0
  193. data/other/stories/149 +15 -0
  194. data/other/stories/15 +15 -0
  195. data/other/stories/150 +17 -0
  196. data/other/stories/151 +13 -0
  197. data/other/stories/152 +13 -0
  198. data/other/stories/153 +17 -0
  199. data/other/stories/154 +15 -0
  200. data/other/stories/155 +15 -0
  201. data/other/stories/156 +17 -0
  202. data/other/stories/157 +13 -0
  203. data/other/stories/158 +21 -0
  204. data/other/stories/159 +15 -0
  205. data/other/stories/16 +17 -0
  206. data/other/stories/160 +17 -0
  207. data/other/stories/161 +15 -0
  208. data/other/stories/162 +19 -0
  209. data/other/stories/163 +15 -0
  210. data/other/stories/164 +13 -0
  211. data/other/stories/165 +11 -0
  212. data/other/stories/166 +19 -0
  213. data/other/stories/167 +19 -0
  214. data/other/stories/168 +21 -0
  215. data/other/stories/169 +13 -0
  216. data/other/stories/17 +19 -0
  217. data/other/stories/170 +13 -0
  218. data/other/stories/171 +13 -0
  219. data/other/stories/172 +15 -0
  220. data/other/stories/173 +13 -0
  221. data/other/stories/174 +11 -0
  222. data/other/stories/175 +15 -0
  223. data/other/stories/176 +15 -0
  224. data/other/stories/177 +15 -0
  225. data/other/stories/178 +15 -0
  226. data/other/stories/179 +17 -0
  227. data/other/stories/18 +23 -0
  228. data/other/stories/180 +19 -0
  229. data/other/stories/181 +15 -0
  230. data/other/stories/182 +15 -0
  231. data/other/stories/183 +17 -0
  232. data/other/stories/184 +15 -0
  233. data/other/stories/185 +15 -0
  234. data/other/stories/186 +15 -0
  235. data/other/stories/187 +15 -0
  236. data/other/stories/188 +15 -0
  237. data/other/stories/189 +17 -0
  238. data/other/stories/19 +17 -0
  239. data/other/stories/190 +13 -0
  240. data/other/stories/191 +17 -0
  241. data/other/stories/192 +17 -0
  242. data/other/stories/193 +11 -0
  243. data/other/stories/194 +17 -0
  244. data/other/stories/195 +13 -0
  245. data/other/stories/196 +13 -0
  246. data/other/stories/197 +15 -0
  247. data/other/stories/198 +15 -0
  248. data/other/stories/199 +15 -0
  249. data/other/stories/2 +13 -0
  250. data/other/stories/20 +15 -0
  251. data/other/stories/200 +17 -0
  252. data/other/stories/201 +21 -0
  253. data/other/stories/202 +13 -0
  254. data/other/stories/203 +15 -0
  255. data/other/stories/204 +17 -0
  256. data/other/stories/205 +13 -0
  257. data/other/stories/206 +15 -0
  258. data/other/stories/207 +13 -0
  259. data/other/stories/208 +11 -0
  260. data/other/stories/209 +15 -0
  261. data/other/stories/21 +19 -0
  262. data/other/stories/210 +11 -0
  263. data/other/stories/211 +19 -0
  264. data/other/stories/212 +17 -0
  265. data/other/stories/213 +13 -0
  266. data/other/stories/214 +13 -0
  267. data/other/stories/215 +15 -0
  268. data/other/stories/216 +13 -0
  269. data/other/stories/217 +23 -0
  270. data/other/stories/218 +17 -0
  271. data/other/stories/219 +15 -0
  272. data/other/stories/22 +13 -0
  273. data/other/stories/220 +15 -0
  274. data/other/stories/221 +19 -0
  275. data/other/stories/222 +15 -0
  276. data/other/stories/223 +19 -0
  277. data/other/stories/224 +15 -0
  278. data/other/stories/225 +13 -0
  279. data/other/stories/226 +15 -0
  280. data/other/stories/227 +15 -0
  281. data/other/stories/228 +13 -0
  282. data/other/stories/229 +15 -0
  283. data/other/stories/23 +17 -0
  284. data/other/stories/230 +15 -0
  285. data/other/stories/231 +17 -0
  286. data/other/stories/232 +17 -0
  287. data/other/stories/233 +17 -0
  288. data/other/stories/234 +19 -0
  289. data/other/stories/235 +17 -0
  290. data/other/stories/236 +15 -0
  291. data/other/stories/237 +15 -0
  292. data/other/stories/238 +17 -0
  293. data/other/stories/239 +19 -0
  294. data/other/stories/24 +15 -0
  295. data/other/stories/240 +15 -0
  296. data/other/stories/241 +13 -0
  297. data/other/stories/242 +23 -0
  298. data/other/stories/243 +11 -0
  299. data/other/stories/244 +19 -0
  300. data/other/stories/245 +19 -0
  301. data/other/stories/246 +17 -0
  302. data/other/stories/247 +15 -0
  303. data/other/stories/248 +17 -0
  304. data/other/stories/249 +13 -0
  305. data/other/stories/25 +15 -0
  306. data/other/stories/250 +15 -0
  307. data/other/stories/251 +21 -0
  308. data/other/stories/252 +17 -0
  309. data/other/stories/253 +15 -0
  310. data/other/stories/254 +13 -0
  311. data/other/stories/255 +15 -0
  312. data/other/stories/256 +13 -0
  313. data/other/stories/257 +15 -0
  314. data/other/stories/258 +13 -0
  315. data/other/stories/259 +15 -0
  316. data/other/stories/26 +15 -0
  317. data/other/stories/260 +15 -0
  318. data/other/stories/261 +11 -0
  319. data/other/stories/262 +13 -0
  320. data/other/stories/263 +17 -0
  321. data/other/stories/264 +13 -0
  322. data/other/stories/265 +19 -0
  323. data/other/stories/266 +23 -0
  324. data/other/stories/267 +13 -0
  325. data/other/stories/268 +15 -0
  326. data/other/stories/269 +19 -0
  327. data/other/stories/27 +13 -0
  328. data/other/stories/270 +15 -0
  329. data/other/stories/271 +17 -0
  330. data/other/stories/272 +11 -0
  331. data/other/stories/273 +13 -0
  332. data/other/stories/274 +15 -0
  333. data/other/stories/275 +13 -0
  334. data/other/stories/276 +15 -0
  335. data/other/stories/277 +13 -0
  336. data/other/stories/278 +15 -0
  337. data/other/stories/279 +15 -0
  338. data/other/stories/28 +19 -0
  339. data/other/stories/280 +15 -0
  340. data/other/stories/281 +19 -0
  341. data/other/stories/282 +15 -0
  342. data/other/stories/283 +17 -0
  343. data/other/stories/284 +13 -0
  344. data/other/stories/285 +15 -0
  345. data/other/stories/286 +15 -0
  346. data/other/stories/287 +17 -0
  347. data/other/stories/288 +11 -0
  348. data/other/stories/289 +15 -0
  349. data/other/stories/29 +23 -0
  350. data/other/stories/290 +19 -0
  351. data/other/stories/291 +19 -0
  352. data/other/stories/292 +17 -0
  353. data/other/stories/293 +13 -0
  354. data/other/stories/294 +15 -0
  355. data/other/stories/295 +15 -0
  356. data/other/stories/296 +15 -0
  357. data/other/stories/297 +15 -0
  358. data/other/stories/298 +23 -0
  359. data/other/stories/299 +11 -0
  360. data/other/stories/3 +15 -0
  361. data/other/stories/30 +13 -0
  362. data/other/stories/300 +15 -0
  363. data/other/stories/301 +15 -0
  364. data/other/stories/302 +19 -0
  365. data/other/stories/303 +15 -0
  366. data/other/stories/304 +17 -0
  367. data/other/stories/305 +15 -0
  368. data/other/stories/306 +21 -0
  369. data/other/stories/307 +11 -0
  370. data/other/stories/308 +15 -0
  371. data/other/stories/309 +15 -0
  372. data/other/stories/31 +19 -0
  373. data/other/stories/310 +17 -0
  374. data/other/stories/311 +15 -0
  375. data/other/stories/312 +15 -0
  376. data/other/stories/313 +13 -0
  377. data/other/stories/314 +15 -0
  378. data/other/stories/315 +13 -0
  379. data/other/stories/316 +17 -0
  380. data/other/stories/317 +17 -0
  381. data/other/stories/318 +15 -0
  382. data/other/stories/319 +13 -0
  383. data/other/stories/32 +17 -0
  384. data/other/stories/320 +13 -0
  385. data/other/stories/321 +15 -0
  386. data/other/stories/322 +11 -0
  387. data/other/stories/323 +15 -0
  388. data/other/stories/324 +19 -0
  389. data/other/stories/325 +19 -0
  390. data/other/stories/326 +21 -0
  391. data/other/stories/327 +15 -0
  392. data/other/stories/328 +15 -0
  393. data/other/stories/329 +15 -0
  394. data/other/stories/33 +13 -0
  395. data/other/stories/330 +15 -0
  396. data/other/stories/331 +17 -0
  397. data/other/stories/332 +20 -0
  398. data/other/stories/333 +17 -0
  399. data/other/stories/334 +11 -0
  400. data/other/stories/335 +15 -0
  401. data/other/stories/336 +15 -0
  402. data/other/stories/337 +19 -0
  403. data/other/stories/338 +19 -0
  404. data/other/stories/339 +13 -0
  405. data/other/stories/34 +13 -0
  406. data/other/stories/340 +17 -0
  407. data/other/stories/341 +15 -0
  408. data/other/stories/342 +17 -0
  409. data/other/stories/343 +15 -0
  410. data/other/stories/344 +17 -0
  411. data/other/stories/345 +15 -0
  412. data/other/stories/346 +17 -0
  413. data/other/stories/347 +17 -0
  414. data/other/stories/348 +11 -0
  415. data/other/stories/349 +15 -0
  416. data/other/stories/35 +13 -0
  417. data/other/stories/350 +21 -0
  418. data/other/stories/351 +15 -0
  419. data/other/stories/352 +17 -0
  420. data/other/stories/353 +15 -0
  421. data/other/stories/354 +17 -0
  422. data/other/stories/355 +15 -0
  423. data/other/stories/356 +15 -0
  424. data/other/stories/357 +11 -0
  425. data/other/stories/358 +13 -0
  426. data/other/stories/359 +11 -0
  427. data/other/stories/36 +11 -0
  428. data/other/stories/360 +13 -0
  429. data/other/stories/361 +13 -0
  430. data/other/stories/362 +13 -0
  431. data/other/stories/363 +21 -0
  432. data/other/stories/364 +17 -0
  433. data/other/stories/365 +11 -0
  434. data/other/stories/37 +13 -0
  435. data/other/stories/38 +17 -0
  436. data/other/stories/39 +17 -0
  437. data/other/stories/4 +15 -0
  438. data/other/stories/40 +11 -0
  439. data/other/stories/4000 +15 -0
  440. data/other/stories/4001 +21 -0
  441. data/other/stories/4002 +15 -0
  442. data/other/stories/4003 +15 -0
  443. data/other/stories/4004 +15 -0
  444. data/other/stories/4005 +15 -0
  445. data/other/stories/4006 +21 -0
  446. data/other/stories/4007 +15 -0
  447. data/other/stories/4008 +15 -0
  448. data/other/stories/4009 +13 -0
  449. data/other/stories/4010 +15 -0
  450. data/other/stories/4011 +15 -0
  451. data/other/stories/4012 +17 -0
  452. data/other/stories/4013 +15 -0
  453. data/other/stories/4014 +13 -0
  454. data/other/stories/4015 +15 -0
  455. data/other/stories/4016 +17 -0
  456. data/other/stories/4017 +13 -0
  457. data/other/stories/4018 +17 -0
  458. data/other/stories/4019 +15 -0
  459. data/other/stories/4020 +19 -0
  460. data/other/stories/4021 +21 -0
  461. data/other/stories/4022 +15 -0
  462. data/other/stories/4023 +13 -0
  463. data/other/stories/4024 +13 -0
  464. data/other/stories/4025 +23 -0
  465. data/other/stories/4026 +17 -0
  466. data/other/stories/4027 +15 -0
  467. data/other/stories/4028 +13 -0
  468. data/other/stories/4029 +11 -0
  469. data/other/stories/4030 +13 -0
  470. data/other/stories/4031 +13 -0
  471. data/other/stories/4032 +13 -0
  472. data/other/stories/4033 +15 -0
  473. data/other/stories/4034 +17 -0
  474. data/other/stories/4035 +13 -0
  475. data/other/stories/41 +15 -0
  476. data/other/stories/42 +17 -0
  477. data/other/stories/43 +15 -0
  478. data/other/stories/44 +15 -0
  479. data/other/stories/45 +17 -0
  480. data/other/stories/46 +17 -0
  481. data/other/stories/47 +13 -0
  482. data/other/stories/48 +13 -0
  483. data/other/stories/49 +17 -0
  484. data/other/stories/5 +11 -0
  485. data/other/stories/50 +13 -0
  486. data/other/stories/51 +15 -0
  487. data/other/stories/52 +17 -0
  488. data/other/stories/53 +15 -0
  489. data/other/stories/54 +11 -0
  490. data/other/stories/55 +21 -0
  491. data/other/stories/56 +19 -0
  492. data/other/stories/57 +13 -0
  493. data/other/stories/58 +15 -0
  494. data/other/stories/59 +13 -0
  495. data/other/stories/6 +11 -0
  496. data/other/stories/60 +13 -0
  497. data/other/stories/61 +13 -0
  498. data/other/stories/62 +13 -0
  499. data/other/stories/63 +15 -0
  500. data/other/stories/64 +15 -0
  501. data/other/stories/65 +17 -0
  502. data/other/stories/66 +15 -0
  503. data/other/stories/67 +15 -0
  504. data/other/stories/68 +15 -0
  505. data/other/stories/69 +17 -0
  506. data/other/stories/7 +15 -0
  507. data/other/stories/70 +21 -0
  508. data/other/stories/71 +13 -0
  509. data/other/stories/72 +13 -0
  510. data/other/stories/73 +15 -0
  511. data/other/stories/74 +17 -0
  512. data/other/stories/75 +11 -0
  513. data/other/stories/76 +19 -0
  514. data/other/stories/77 +21 -0
  515. data/other/stories/78 +19 -0
  516. data/other/stories/79 +11 -0
  517. data/other/stories/8 +17 -0
  518. data/other/stories/80 +21 -0
  519. data/other/stories/81 +23 -0
  520. data/other/stories/82 +15 -0
  521. data/other/stories/83 +11 -0
  522. data/other/stories/84 +13 -0
  523. data/other/stories/85 +17 -0
  524. data/other/stories/86 +17 -0
  525. data/other/stories/87 +25 -0
  526. data/other/stories/88 +19 -0
  527. data/other/stories/89 +17 -0
  528. data/other/stories/9 +15 -0
  529. data/other/stories/90 +15 -0
  530. data/other/stories/91 +15 -0
  531. data/other/stories/92 +17 -0
  532. data/other/stories/93 +17 -0
  533. data/other/stories/94 +19 -0
  534. data/other/stories/95 +13 -0
  535. data/other/stories/96 +17 -0
  536. data/other/stories/97 +15 -0
  537. data/other/stories/98 +11 -0
  538. data/other/stories/99 +13 -0
  539. data/src/_compilation/abs +271 -0
  540. data/src/{compilation → _compilation}/add +34 -49
  541. data/src/{compilation → _compilation}/append +34 -49
  542. data/src/{compilation → _compilation}/args +33 -48
  543. data/src/_compilation/delete +271 -0
  544. data/src/{compilation → _compilation}/div +34 -49
  545. data/src/{compilation → _compilation}/exp +34 -49
  546. data/src/{compilation → _compilation}/floor +33 -48
  547. data/src/_compilation/gsub +271 -0
  548. data/src/{compilation → _compilation}/gsubip +33 -48
  549. data/src/{compilation → _compilation}/last_nth +34 -49
  550. data/src/{compilation → _compilation}/lines +34 -49
  551. data/src/{compilation/copy → _compilation/mul} +35 -50
  552. data/src/{compilation → _compilation}/nth +33 -48
  553. data/src/_compilation/nth_word +271 -0
  554. data/src/{compilation → _compilation}/prepend +34 -49
  555. data/src/{compilation → _compilation}/rip +34 -49
  556. data/src/{compilation → _compilation}/rnip +34 -49
  557. data/src/_compilation/selectlines +271 -0
  558. data/src/{compilation → _compilation}/sub +34 -49
  559. data/src/{compilation → _compilation}/swap +34 -49
  560. data/src/_compilation/trim +271 -0
  561. data/src/clock.cr +40 -39
  562. data/src/compile_all +9 -9
  563. data/src/left_right +0 -0
  564. data/src/programs/abs +0 -0
  565. data/src/programs/add +0 -0
  566. data/src/programs/append +0 -0
  567. data/src/programs/args +0 -0
  568. data/src/programs/delete +0 -0
  569. data/src/programs/div +0 -0
  570. data/src/programs/exp +0 -0
  571. data/src/programs/floor +0 -0
  572. data/src/programs/gsub +0 -0
  573. data/src/programs/gsubip +0 -0
  574. data/src/programs/last_nth +0 -0
  575. data/src/programs/lines +0 -0
  576. data/src/programs/mul +0 -0
  577. data/src/programs/nth +0 -0
  578. data/src/programs/nth_word +0 -0
  579. data/src/programs/prepend +0 -0
  580. data/src/programs/rip +0 -0
  581. data/src/programs/rnip +0 -0
  582. data/src/programs/selectlines +0 -0
  583. data/src/programs/sub +0 -0
  584. data/src/programs/swap +0 -0
  585. data/src/programs/trim +0 -0
  586. data/src/rgsub +0 -0
  587. data/src/rgsub.c +3 -5
  588. data/src/src/{code2 → code} +2 -2
  589. data/src/src/functions.cr +33 -49
  590. data/src/src/mk +2 -3
  591. data/src/src/q.cr +9 -0
  592. metadata +443 -38
  593. data/SONG +0 -156
  594. data/bin/dump +0 -0
  595. data/bin/undump +0 -0
  596. data/documentation/dump +0 -12
  597. data/documentation/undump +0 -19
  598. data/src/clock +0 -0
  599. data/src/compilation/abs +0 -286
  600. data/src/compilation/dump +0 -286
  601. data/src/compilation/gsub +0 -286
  602. data/src/compilation/mul +0 -286
  603. data/src/compilation/selectlines +0 -286
  604. data/src/compilation/undump +0 -286
  605. data/src/gsubip +0 -0
  606. data/src/programs/copy +0 -0
  607. data/src/programs/dump +0 -0
  608. data/src/programs/news +0 -0
  609. data/src/programs/undump +0 -0
  610. data/src/src/QQ +0 -15
  611. data/src/test/cat +0 -0
  612. data/src/test/foo/dog +0 -0
data/other/stories/98 ADDED
@@ -0,0 +1,11 @@
1
+
2
+
3
+ Once upon a time, there was a man named Jack who always had difficulties in maintaining social relations. Jack never cared about other people's opinions or feelings, and he didn't try to hide his indifferent attitude towards socializing. Jack's lack of interest in socializing made him unpopular among his colleagues and acquaintances.
4
+
5
+ Despite Jack's apparent lack of concern for social relations, he was a determined individual who always had the tenacity to accomplish anything he set his mind to - and he wasn't a scientist either. This perseverance is what made Jack stand out in life. He didn't care about social hierarchies or norms, but he was entirely focused on achieving his goals.
6
+
7
+ Jack's professional career began as an unpaid intern at an advertising company. Jack despised socializing with his colleagues and attending company events, which hurt his chances of being offered a job at the company. However, Jack kept working hard and improving his skills, which paid off when he was recently offered a job as a marketing director at the company's rival company.
8
+
9
+ Despite the significant achievement of his career, Jack still didn't care about socializing or maintaining relations with people. His indifference got him into trouble at various times in life, but Jack never regretted that. He wasn't a people's person, and that was alright with him. At the end of the day, Jack firmly believed in the power of his accomplishments that helped him reduce his dependency on people or society.
10
+
11
+ Thus, Jack lived a fulfilling life, only caring about his goals, and he never regrets not being a social person. He was always known as the man who didn't care about social relations but accomplished so much in life.
data/other/stories/99 ADDED
@@ -0,0 +1,13 @@
1
+
2
+
3
+ Andrew had always been a bit of a loner. He was never the type to go out of his way to make friends, and if he did strike up a conversation, it would inevitably become awkward or uncomfortable for the other person. Despite this, he was brilliant. He possessed an incredible mind, one that allowed him to solve complex problems with ease.
4
+
5
+ Andrew's talent did not go unnoticed. He was offered a job at a prestigious company, working in research and development. His new position allowed him to pour all his energy into his work, and it paid off. Andrew created something that revolutionized the industry, something that would make life easier for millions of people.
6
+
7
+ However, while Andrew excelled in his work, his social life suffered greatly. He didn't make any friends at work, and he didn't care. He would often brush off invitations to group outings or happy hours, preferring to spend his time alone, working on his projects.
8
+
9
+ At first, his colleagues tried to include him in their activities, but eventually, they gave up. They found him distant, unapproachable, and frankly, a bit odd. Andrew didn't care. He had no interest in forming relationships or socializing because it took away from his work.
10
+
11
+ Despite his unpopularity, Andrew was content. He had accomplished something incredible, something he had worked tirelessly on for years. When he finally presented his invention to the public and saw its massive success, he felt a sense of pride that would have made him cry if he had been the crying type. However, he wasn't.
12
+
13
+ Andrew lived out the rest of his days in the same manner he always had - alone, with his work. He never regretted his choices or thought about what he could have done differently. It didn't matter to him. Andrew accomplished something major, something that made a difference. He was content knowing that.
@@ -0,0 +1,271 @@
1
+ #!/usr/bin/crystal
2
+
3
+ def delete(arg)
4
+ `find -name #{arg}`.each_line do |i|
5
+ File.delete(i)
6
+ end
7
+ end
8
+
9
+
10
+ def nth_word(arg)
11
+ i = arg.to_u64 - 1
12
+ STDIN.each_line do |line|
13
+ puts line.split[i] rescue ""
14
+ end
15
+ end
16
+
17
+ def trim()
18
+ STDIN.each_line do |line|
19
+ puts line.strip
20
+ end
21
+ end
22
+
23
+ def lines()
24
+ if !STDIN.tty?
25
+ puts STDIN.gets_to_end.count("\n")
26
+ else
27
+ res = `find .`.count("\n") - 1
28
+ puts res
29
+ end
30
+ end
31
+
32
+ def args(arg1)
33
+ sections = Process.parse_arguments(arg1)
34
+ program, args = sections[0], sections[1..]
35
+
36
+ sections = Process.parse_arguments(arg1)
37
+
38
+ program = Process.find_executable(program)
39
+ if program.nil?
40
+ puts "Can't find program #{arg1}"
41
+ raise "Error"
42
+ end
43
+
44
+ lines = STDIN.gets_to_end.strip
45
+ lines = lines.split "\n"
46
+ times = (lines.size % 2000000 == 0) ? 2 : 1
47
+
48
+ times += lines.size // 2000000
49
+ n = 0
50
+ times.times do
51
+ prog_args = args
52
+
53
+ prog_args += lines[n..(n + 2000000 - 1)]; n += 2000000
54
+
55
+ if (p = Process.fork).nil?
56
+ Process.exec(
57
+ program,
58
+ prog_args
59
+ )
60
+ else
61
+ p.wait
62
+ end
63
+ end
64
+ end
65
+
66
+ def mul()
67
+ t = STDIN.read_line.to_f64
68
+
69
+ i = 0f64; STDIN.each_line do |line|
70
+ t *= line.to_f64
71
+ end
72
+
73
+ puts t
74
+ end
75
+
76
+ def add()
77
+ t = STDIN.read_line.to_f64
78
+
79
+ i = 0f64; STDIN.each_line do |line|
80
+ t += line.to_f64
81
+ end
82
+
83
+ puts t
84
+ end
85
+
86
+ def div()
87
+ t = STDIN.read_line.to_f64
88
+
89
+ i = 0f64; STDIN.each_line do |line|
90
+ t /= line.to_f64
91
+ end
92
+
93
+ puts t
94
+ end
95
+
96
+ def sub()
97
+ t = STDIN.read_line.to_f64
98
+
99
+ i = 0f64; STDIN.each_line do |line|
100
+ t -= line.to_f64
101
+ end
102
+
103
+ puts t
104
+ end
105
+
106
+ def floor()
107
+ puts STDIN.read_line.to_f64.to_i64
108
+ end
109
+
110
+ def abs()
111
+ STDIN.each_line do |l|
112
+ l = l.to_f64.abs
113
+ puts l
114
+ end
115
+ end
116
+
117
+ def exp()
118
+ t = STDIN.read_line.to_f64
119
+
120
+ STDIN.each_line do |line|
121
+ t **= line.to_f64
122
+ end
123
+
124
+ puts t
125
+ end
126
+
127
+ def nth(arg1)
128
+ end_ = arg1.to_u64
129
+ i = 0u64; STDIN.each_line do |line|
130
+ i += 1
131
+ if i == end_
132
+ puts line
133
+ break
134
+ end
135
+ end
136
+ end
137
+
138
+ def last_nth(arg1)
139
+ end_ = arg1.to_u64
140
+ i = 0u64
141
+ t = STDIN.gets_to_end
142
+ if t[-1] == '\n'
143
+ t = t[0..-2]
144
+ end
145
+
146
+ t.split("\n").reverse_each do |line|
147
+ i += 1
148
+ if i == end_
149
+ puts line
150
+ break
151
+ end
152
+ end
153
+ end
154
+
155
+ def gsubip(arg1, arg2, arg3)
156
+ regex = Regex.new(arg1)
157
+ text = File.read(arg3).gsub(/#{arg1}/m, arg2)
158
+ File.open(t = File.tempname("coreutils", "_tmp"), "w", File.info(arg3).permissions) do |h|
159
+ h.print text
160
+ end
161
+ begin
162
+ File.rename t, arg3
163
+ rescue
164
+ rm t
165
+ end
166
+ end
167
+
168
+ def rip(arg1, arg2, arg3)
169
+ text = File.read(arg3).gsub(arg1, arg2)
170
+ File.open(t = File.tempname("coreutils", "_tmp"), "w", File.info(arg3).permissions) do |h|
171
+ h.print text
172
+ end
173
+ begin
174
+ File.rename t, arg3
175
+ rescue
176
+ rm t
177
+ end
178
+ end
179
+
180
+ def gsub(arg1, arg2)
181
+ print STDIN.gets_to_end.gsub(/#{arg1}/m, arg2)
182
+ end
183
+
184
+ def rnip(arg1, arg2)
185
+ print STDIN.gets_to_end.gsub(arg1, arg2)
186
+ end
187
+
188
+ def selectlines()
189
+ STDIN.each_line do |line|
190
+ if line.strip.size > 0
191
+ puts line
192
+ end
193
+ end
194
+ end
195
+
196
+ def swap(file1, file2)
197
+ [file1, file2].each do |f|
198
+ File.exists?(f) || abort("No file named #{f.dump}")
199
+ end
200
+ t = File.tempname("coreutils", "_tmp")
201
+
202
+ File.rename file1, t
203
+ File.rename file2, file1
204
+ File.rename t, file2
205
+ end
206
+
207
+ def prepend(file)
208
+ file_data = File.read(file)
209
+ new_data = STDIN.gets_to_end
210
+ File.open(t = File.tempname("coreutils", "_tmp"), "w", File.info(file).permissions) do |h|
211
+ h << new_data + file_data
212
+ end
213
+
214
+ begin
215
+ File.rename t, file
216
+ rescue
217
+ rm t
218
+ end
219
+ end
220
+
221
+ def append(file)
222
+ file_data = File.read(file)
223
+ new_data = STDIN.gets_to_end
224
+ File.open(t = File.tempname("coreutils", "_tmp"), "w", File.info(file).permissions) do |h|
225
+ h << file_data + new_data
226
+ end
227
+ begin
228
+ File.rename t, file
229
+ rescue
230
+ rm t
231
+ end
232
+ end
233
+
234
+ class Funcs
235
+ def self.argument_data(program, usage, long_desc)
236
+ if !(STDOUT.tty?)
237
+ text = "<div style='border-radius: 50px; border: 10px dotted cyan; padding: 30px;'>\n"
238
+ else
239
+ text = ""
240
+ end
241
+
242
+ text += ("NAME") + "\n\t" + program
243
+ text += " - "
244
+ text += program + "\n" * 2 + ("SYNOPSIS") + "\n"
245
+ # tebold_("SYNOPSIS_")# + bold("SYNOPSIS")
246
+ text += "\t"
247
+ text += (program) + " "
248
+ text += usage + "\n\n"
249
+ text += long_desc + "\n\n"
250
+
251
+ if STDOUT.tty? == false
252
+ text = text.gsub("\n", "<br/> ").gsub("\t", "&nbsp;" * 5)
253
+ text += "</div>\n\n"
254
+ end
255
+
256
+ puts text
257
+ end
258
+ end
259
+
260
+
261
+ def main()
262
+ if ARGV.size != 0
263
+ Funcs.argument_data("abs", "[abs] [arguments]", "Abs gets the absolute value of an integer\n\nThe absolute value of a number is the value of that number without its sign\n\necho -300 | abs\n\n=> 300\n\necho 200 | abs\n\n=> 200 \n\n(echo -2; echo -10) | sub | abs\n\n=> 12\n\nThe last one would do -2 - -10, the result would be -12, and then the absolute value would be computed, and so the result would be 12.")
264
+ exit 1
265
+ end
266
+
267
+ abs
268
+ end
269
+
270
+
271
+ main
@@ -1,9 +1,24 @@
1
1
  #!/usr/bin/crystal
2
- require "file_utils"
3
- require "json"
4
- require "colorize"
5
2
 
6
- include FileUtils
3
+ def delete(arg)
4
+ `find -name #{arg}`.each_line do |i|
5
+ File.delete(i)
6
+ end
7
+ end
8
+
9
+
10
+ def nth_word(arg)
11
+ i = arg.to_u64 - 1
12
+ STDIN.each_line do |line|
13
+ puts line.split[i] rescue ""
14
+ end
15
+ end
16
+
17
+ def trim()
18
+ STDIN.each_line do |line|
19
+ puts line.strip
20
+ end
21
+ end
7
22
 
8
23
  def lines()
9
24
  if !STDIN.tty?
@@ -48,14 +63,6 @@ def args(arg1)
48
63
  end
49
64
  end
50
65
 
51
- def copy()
52
- command = "/usr/bin/xclip"
53
- args = ["-selection", "c"]
54
- Process.run(command, args, output: STDOUT) do |file|
55
- file.input.print STDIN.gets_to_end
56
- end
57
- end
58
-
59
66
  def mul()
60
67
  t = STDIN.read_line.to_f64
61
68
 
@@ -107,14 +114,6 @@ def abs()
107
114
  end
108
115
  end
109
116
 
110
- def dump()
111
- puts STDIN.gets_to_end.dump
112
- end
113
-
114
- def undump()
115
- puts JSON.parse(STDIN.gets_to_end)
116
- end
117
-
118
117
  def exp()
119
118
  t = STDIN.read_line.to_f64
120
119
 
@@ -138,10 +137,10 @@ end
138
137
 
139
138
  def last_nth(arg1)
140
139
  end_ = arg1.to_u64
141
- i = 0u64;
140
+ i = 0u64
142
141
  t = STDIN.gets_to_end
143
142
  if t[-1] == '\n'
144
- t = t[0..-2]
143
+ t = t[0..-2]
145
144
  end
146
145
 
147
146
  t.split("\n").reverse_each do |line|
@@ -160,7 +159,7 @@ def gsubip(arg1, arg2, arg3)
160
159
  h.print text
161
160
  end
162
161
  begin
163
- mv t, arg3
162
+ File.rename t, arg3
164
163
  rescue
165
164
  rm t
166
165
  end
@@ -172,7 +171,7 @@ def rip(arg1, arg2, arg3)
172
171
  h.print text
173
172
  end
174
173
  begin
175
- mv t, arg3
174
+ File.rename t, arg3
176
175
  rescue
177
176
  rm t
178
177
  end
@@ -194,16 +193,15 @@ def selectlines()
194
193
  end
195
194
  end
196
195
 
197
-
198
196
  def swap(file1, file2)
199
197
  [file1, file2].each do |f|
200
- File.exists?(f) || abort("No file named #{f.dump}".colorize(:red))
198
+ File.exists?(f) || abort("No file named #{f.dump}")
201
199
  end
202
200
  t = File.tempname("coreutils", "_tmp")
203
201
 
204
- mv file1, t
205
- mv file2, file1
206
- mv t, file2
202
+ File.rename file1, t
203
+ File.rename file2, file1
204
+ File.rename t, file2
207
205
  end
208
206
 
209
207
  def prepend(file)
@@ -214,7 +212,7 @@ def prepend(file)
214
212
  end
215
213
 
216
214
  begin
217
- mv t, file
215
+ File.rename t, file
218
216
  rescue
219
217
  rm t
220
218
  end
@@ -227,24 +225,13 @@ def append(file)
227
225
  h << file_data + new_data
228
226
  end
229
227
  begin
230
- mv t, file
228
+ File.rename t, file
231
229
  rescue
232
230
  rm t
233
231
  end
234
232
  end
235
233
 
236
234
  class Funcs
237
- def self.bold(text)
238
- text = text.to_s
239
- # text += two.to_s
240
-
241
- if STDOUT.tty?
242
- return text.colorize.bold.to_s
243
- else
244
- return "<b>" + text + "</b>"
245
- end
246
- end
247
-
248
235
  def self.argument_data(program, usage, long_desc)
249
236
  if !(STDOUT.tty?)
250
237
  text = "<div style='border-radius: 50px; border: 10px dotted cyan; padding: 30px;'>\n"
@@ -252,12 +239,12 @@ class Funcs
252
239
  text = ""
253
240
  end
254
241
 
255
- text += bold("NAME") + "\n\t" + program
242
+ text += ("NAME") + "\n\t" + program
256
243
  text += " - "
257
- text += program + "\n" * 2 + bold("SYNOPSIS") + "\n"
244
+ text += program + "\n" * 2 + ("SYNOPSIS") + "\n"
258
245
  # tebold_("SYNOPSIS_")# + bold("SYNOPSIS")
259
246
  text += "\t"
260
- text += bold(program) + " "
247
+ text += (program) + " "
261
248
  text += usage + "\n\n"
262
249
  text += long_desc + "\n\n"
263
250
 
@@ -267,15 +254,13 @@ class Funcs
267
254
  end
268
255
 
269
256
  puts text
270
-
271
- # puts "</
272
- # puts "</
273
257
  end
274
258
  end
275
259
 
260
+
276
261
  def main()
277
262
  if ARGV.size != 0
278
- Funcs.argument_data("add", "[add] [arguments]", "See the sub example\n\n\n\nadd adds integers from the standard input\n\n(echo 1; echo 2; echo 3) | add\n\n\n\nThe result would be 6")
263
+ Funcs.argument_data("add", "[add] [arguments]", "See the sub example\n\nadd adds integers from the standard input\n\n(echo 1; echo 2; echo 3) | add\n\nThe result would be 6")
279
264
  exit 1
280
265
  end
281
266
 
@@ -1,9 +1,24 @@
1
1
  #!/usr/bin/crystal
2
- require "file_utils"
3
- require "json"
4
- require "colorize"
5
2
 
6
- include FileUtils
3
+ def delete(arg)
4
+ `find -name #{arg}`.each_line do |i|
5
+ File.delete(i)
6
+ end
7
+ end
8
+
9
+
10
+ def nth_word(arg)
11
+ i = arg.to_u64 - 1
12
+ STDIN.each_line do |line|
13
+ puts line.split[i] rescue ""
14
+ end
15
+ end
16
+
17
+ def trim()
18
+ STDIN.each_line do |line|
19
+ puts line.strip
20
+ end
21
+ end
7
22
 
8
23
  def lines()
9
24
  if !STDIN.tty?
@@ -48,14 +63,6 @@ def args(arg1)
48
63
  end
49
64
  end
50
65
 
51
- def copy()
52
- command = "/usr/bin/xclip"
53
- args = ["-selection", "c"]
54
- Process.run(command, args, output: STDOUT) do |file|
55
- file.input.print STDIN.gets_to_end
56
- end
57
- end
58
-
59
66
  def mul()
60
67
  t = STDIN.read_line.to_f64
61
68
 
@@ -107,14 +114,6 @@ def abs()
107
114
  end
108
115
  end
109
116
 
110
- def dump()
111
- puts STDIN.gets_to_end.dump
112
- end
113
-
114
- def undump()
115
- puts JSON.parse(STDIN.gets_to_end)
116
- end
117
-
118
117
  def exp()
119
118
  t = STDIN.read_line.to_f64
120
119
 
@@ -138,10 +137,10 @@ end
138
137
 
139
138
  def last_nth(arg1)
140
139
  end_ = arg1.to_u64
141
- i = 0u64;
140
+ i = 0u64
142
141
  t = STDIN.gets_to_end
143
142
  if t[-1] == '\n'
144
- t = t[0..-2]
143
+ t = t[0..-2]
145
144
  end
146
145
 
147
146
  t.split("\n").reverse_each do |line|
@@ -160,7 +159,7 @@ def gsubip(arg1, arg2, arg3)
160
159
  h.print text
161
160
  end
162
161
  begin
163
- mv t, arg3
162
+ File.rename t, arg3
164
163
  rescue
165
164
  rm t
166
165
  end
@@ -172,7 +171,7 @@ def rip(arg1, arg2, arg3)
172
171
  h.print text
173
172
  end
174
173
  begin
175
- mv t, arg3
174
+ File.rename t, arg3
176
175
  rescue
177
176
  rm t
178
177
  end
@@ -194,16 +193,15 @@ def selectlines()
194
193
  end
195
194
  end
196
195
 
197
-
198
196
  def swap(file1, file2)
199
197
  [file1, file2].each do |f|
200
- File.exists?(f) || abort("No file named #{f.dump}".colorize(:red))
198
+ File.exists?(f) || abort("No file named #{f.dump}")
201
199
  end
202
200
  t = File.tempname("coreutils", "_tmp")
203
201
 
204
- mv file1, t
205
- mv file2, file1
206
- mv t, file2
202
+ File.rename file1, t
203
+ File.rename file2, file1
204
+ File.rename t, file2
207
205
  end
208
206
 
209
207
  def prepend(file)
@@ -214,7 +212,7 @@ def prepend(file)
214
212
  end
215
213
 
216
214
  begin
217
- mv t, file
215
+ File.rename t, file
218
216
  rescue
219
217
  rm t
220
218
  end
@@ -227,24 +225,13 @@ def append(file)
227
225
  h << file_data + new_data
228
226
  end
229
227
  begin
230
- mv t, file
228
+ File.rename t, file
231
229
  rescue
232
230
  rm t
233
231
  end
234
232
  end
235
233
 
236
234
  class Funcs
237
- def self.bold(text)
238
- text = text.to_s
239
- # text += two.to_s
240
-
241
- if STDOUT.tty?
242
- return text.colorize.bold.to_s
243
- else
244
- return "<b>" + text + "</b>"
245
- end
246
- end
247
-
248
235
  def self.argument_data(program, usage, long_desc)
249
236
  if !(STDOUT.tty?)
250
237
  text = "<div style='border-radius: 50px; border: 10px dotted cyan; padding: 30px;'>\n"
@@ -252,12 +239,12 @@ class Funcs
252
239
  text = ""
253
240
  end
254
241
 
255
- text += bold("NAME") + "\n\t" + program
242
+ text += ("NAME") + "\n\t" + program
256
243
  text += " - "
257
- text += program + "\n" * 2 + bold("SYNOPSIS") + "\n"
244
+ text += program + "\n" * 2 + ("SYNOPSIS") + "\n"
258
245
  # tebold_("SYNOPSIS_")# + bold("SYNOPSIS")
259
246
  text += "\t"
260
- text += bold(program) + " "
247
+ text += (program) + " "
261
248
  text += usage + "\n\n"
262
249
  text += long_desc + "\n\n"
263
250
 
@@ -267,15 +254,13 @@ class Funcs
267
254
  end
268
255
 
269
256
  puts text
270
-
271
- # puts "</
272
- # puts "</
273
257
  end
274
258
  end
275
259
 
260
+
276
261
  def main()
277
262
  if ARGV.size != 1
278
- Funcs.argument_data("append", "[append] [arguments]", "Appends text to file\n\n\nExample\n\n\nappend file\n\nThis is more text to be appended")
263
+ Funcs.argument_data("append", "[append] [arguments]", "Appends text to file\n\nExample\n\nappend file\n\nThis is more text to be appended")
279
264
  exit 1
280
265
  end
281
266