Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!uflorida!gatech!gt-cmmsr!chmsr!rr From: rr@chmsr (Richard Robison) Newsgroups: comp.sources.bugs Subject: bug in Andrew Large's "sp" spell checker + patch Message-ID: <32091@gt-cmmsr.GATECH.EDU> Date: 31 Dec 88 21:32:14 GMT Sender: news@gt-cmmsr.GATECH.EDU Reply-To: rr@chmsr.gatech.edu (Richard Robison) Organization: Center for Man-Machine Systems Research - Ga Tech Lines: 60 I would have sent this to Andrew, but I can't find his e-mail address. -Richard Problem: On a Sun 3 running SunOS 4.0 changes made during spell check session will not save. Fix: I noticed Andrew was fclose'ing a popen'ed FILE pointer. Changing fclose to pclose fixes the problem. The patch is listed below. *** doc_correct.c.orig Wed Dec 7 16:50:19 1988 --- doc_correct.c Wed Dec 7 16:50:31 1988 *************** *** 23,29 **** if (strcmp (bad_words[loop], good_words[loop]) != 0) fprintf (ex_ptr, "%%s/\\<%s\\>/%s/g\n", bad_words[loop], good_words[loop]); ! fprintf (ex_ptr, "w\nq\n"); fclose (ex_ptr); addstr (" done"); refresh (); } --- 23,29 ---- if (strcmp (bad_words[loop], good_words[loop]) != 0) fprintf (ex_ptr, "%%s/\\<%s\\>/%s/g\n", bad_words[loop], good_words[loop]); ! fprintf (ex_ptr, "w\nq\n"); pclose (ex_ptr); addstr (" done"); refresh (); } *** spell.c.orig Wed Dec 7 17:56:31 1988 --- spell.c Wed Dec 7 17:56:44 1988 *************** *** 57,63 **** else bad_words[i][strlen (bad_words[i]) - 1] = '\0'; } ! fclose (spell_out); if ((num_bad = i) >= MAX_WORDS) { getyx (stdscr, ypos, xpos); --- 57,63 ---- else bad_words[i][strlen (bad_words[i]) - 1] = '\0'; } ! pclose (spell_out); if ((num_bad = i) >= MAX_WORDS) { getyx (stdscr, ypos, xpos); Richard Robison UUCP: rr@chmsr.UUCP {backbones}!gatech!chmsr!rr INTERNET: rr@chmsr.gatech.edu