home *** CD-ROM | disk | FTP | other *** search
-
- /* ------------ test for a blank line ---------------- */
- static int blankline(int line)
- {
- char *cp;
- int x;
-
- cp = topptr + (line-1) * wwd;
- for(x=0; x < wwd; x++)
- if(*(cp+x) != ' ')
- break;
- return(x == wwd );
- }
-
- /*------------ delete a word ------------------------ */
- static void delete_word(int x, int y)
- {
- int wct = 0;
- char *cp1, *cp2;
-
- cp1= cp2= curr(x, y);
- if(*cp2 == ' ')
- while(*cp2 == ' ' && x+wct < wwd) {
- wct++;
- cp2++;
- }
- else {
- while(*cp2 != ' ' && x+wct < wwd) {
- wct++;
- cp2++;
- }
- while(*cp2 == ' ' && x+wct < wwd) {
- wct++;
- cp2++;
- }
- }
- movmem(cp2, cp1, wwd-x-wct);
- setmem(cp1+wwd-x-wct, wct, ' ');
- dispay_text();
-
- - 2 -
- findlast();
- }
-
- /*------------------ delete a line -----------------*/
- static void delete_line(int y)
- {
- char *cp1, *cp2;
- int len;
-
- cp1=bfptr + y + wwd;
- cp2=cp1 + wwd;
- if(cp1<lstptr) {
- len=endptr - cp2;
- movmem(cp2, cp1, len);
- lstptr -= wwd;
- setmem(endptr-wwd, wwd,' ');
- display_text();
- }
- }
-
- /*---------- delete a block --------------------*/
- static void delete_block()
- {
- char *cp1, *cp2;
- int len;
-
- if(!blkbeg || !blkend) {
- putchar(BELL);
- return;
- }
- cp1=topptr + blkend * wwd;
- cp2=topptr + (blkend-1) * wwd;
- len=endptr - cp1;
- movmem(cp2, cp1, len);
- setmem(cp2+len, endptr-(cp2+len), ' ');
- blkbeg = blkend = 0;
- lstptr-=(cp1 - cp2);
-
- - 3 -
- display_text();
- }
-
- /*----------- move and copy text blocks --------------*/
- static void mvblock(int y , int moving)
- {
- char *cp1, *cp2, *hd;
- int len;
- if(!blkbeg || ! blkend) {
- putchar(BELL);
- return;
- }
- if(lineno(y) > blkbeg-1 && lineno(y) <= blkend-1) {
- error_message("Can't move/copy a blok into itself");
- return;
- }
- len=(blkend - blkbeg + 1) * wwd;
- if((hd=malloc(len)) == 0)
- return;
- cp1 = topptr + (blkbeg + 1) * wwd;
- movmem(cp1, hd, len);
- cp2 = topptr + lineno(y) * wwd;
- if (moving) {
- if(lineno(y) > blkbeg-1)
- cp2 -= len;
- do_display_text =0;
- delete_block();
- do_display_text =1;
- }
- if(cp2+len <= endptr) {
- movemem(cp2, cp2 + len, endptr - cp2 - len);
- movemem(hd, cp2, len);
- }
- free(hd);
- blkbeg = blkend = 0 ;
- display_text();
- }
-
- - 4 -
-
-
- /*------------ copy a block -----------------------*/
- static void copy_block(int y)
- {
- mvblock(y, FALSE);
- findlast();
- }
-
- /*------------------- move a block -----------------*/
- static void move_block(int y)
- {
- mvblock(y, TRUE);
- }
-
- /*-------- find the last caracter in the buffer -------*/
- static void findlast()
- {
- register char *lp = endptr - 1;
- register char *tp = topptr;
-
- while(lp > tp && (*lp == ' ' || *lp == '\0')) {
- if (*lp == '\0')
- *lp = ' ';
- --lp;
- }
- if(*lp != ' ')
- lp++;
- lstptr = lp;
- }
-
- /*------- go to end of the data in the buffer ---------*/
- static void find_end(int *x, int *y)
- {
- int ct;
-
- bfptr = lstptr;
-
- - 5 -
- ct = (lstptr - topptr) % wsz;
- bfptr -= ct;
- if (bfptr + wsz > endptr)
- bfptr = endptr - wsz;
- *x = 0;
- *y = (ct / wwd);
- downward(y);
- }
-
- /*---------------------carriage return ----------------*/
- static void carrtn(int *x, int *y, int insert)
- {
- int insct;
- char *cp, *nl;
- int ctl = 2;
-
- cp = curr(*x, *y);
- nl = cp + ((cp - topptr) % wwd);
- if (lineno(*y)+2 < lines)
- if (insert && nl < endptr) {
- insct = wwd - *x;
- while (ctl--) {
- if (endptr > cp + insct) {
- movemem(cp, cp+insct, endptr-insct-cp);
- setmem(cp, insct, ' ');
- }
- else if(ctl == 1)
- setmem(cp, endptr - cp, ' ');
- cp += insct * 2;
- insct= *x;
- }
- }
- *x = 0;
- downward(y);
- if (insert) {
- testpara(*x, *y);
- display_text();
-
- - 6 -
- }
- if (lineno(*y)+2 < lines)
- if (insert)
- if ((lstptr + wwd) <= endptr)
- if(lstptr > curr(*x, *y))
- lstptr += wwd;
- }
- /* ------- move the buffer offset back one position ------ */
- static void backspase(int *x, int *y)
- {
- if (*x == 0) {
- *x = wwd - 1;
- upward(y);
- }
- else
- --(*x);
- }
- /* ------- move the buffer offset forward one word ------ */
- static void fore_word(int *x, int *y, char *bf)
- {
- while (*bf != ' ') {
- if (spaceup(x, y, &bf) == 0)
- return;
- if (*x == 0)
- break;
- }
- while (*bf == ' ')
- if (spaceup(x, y, &bf) == 0)
- return;
- }
- static int spaceup(int *x, int *y, char **bf)
- {
- if (*bf == lstptr)
- return 0;
-
- (*bf)++;
- forward(x, y);
-
- - 7 -
- return 1;
- }
- /* ------- move the buffer offset backrward one word ------ */
- static void back_word(int *x, int *y, char *bf)
- {
- spacedn(x, y, &bf);
- while (*bf == ' ')
- if (spacedn(x, y, &bf) == 0)
- return;
- while (*bf != ' ') {
- if (*x == 0)
- return;
- if (spacedn(x, y, &bf) == 0)
- return;
- }
- spaceup(x, y, &bf);
- return;
- }
- static int spacedn(int *x, int *y, char **bf)
- {
- if (*bf == topptr)
- return 0;
- --(*bf);
- backspace(x, y);
- return 1;
- }
- /* ------- move the buffer offset forward one position ------ */
- static void backspace(int *x, int *y)
- {
- if (*x == 0) {
- *x = wwd - 1;
- upward(y);
- }
- else
- --(*x);
- }
- /* ---------------------------------------------------------------- */
-
- - 8 -
- static void forward(int *x, int *y)
- {
- int ww = wwd;
-
- (*x)++;
- if (*x == ww) {
- downward(y);
- *x = 0;
- }
- }
- /* ------- move the buffer offset down one position ------ */
- static int downward(int *y)
- {
- if (*y < wht - 1) {
- (*y)++;
- return 1;
- }
- else if ((bfptr + wsz) < endptr) {
- bfptr += wwd;
- scroll(wnd, UP);
- disp_line(wht-1);
- return 1;
- }
- return 0;
- }
- /* --------- move the buffer offset up one position ------ */
- static void upward(int *y)
- {
- if (*y) /* !!!!!!!!!!! */
- --(*y);
- else if ((topptr + wwd) <= bfptr) {
- bfptr -= wwd;
- scroll(wnd, DN);
- disp_line(0);
- }
- }
- /* ---- display all the lines in a window ------ */
-
- - 9 -
- static void display_text()
- {
- int y = 0;
-
- if (do_display_text)
- while (y < wht)
- disp_line(y++);
- }
- /* ---------- Display a line -------- */
- static void disp_line(int y)
- {
- int x = 0, atr = WNORMAL;
-
- if (blkbeg || blkend)
- if (lineno(y) >= blkbeg-1)
- if (lineno(y) <= blkend-1)
- atr = WACCENT;
-
- while (x < wwd) {
- displine(wnd, x+1, y+1, *(bfptr+y * wwd+x), atr);
- x++;
- }
- }
-
- /*--------- set insert /exchange cursor shape -----------*/
- static void insert_line()
- {
- set_cursor_type(inserting ? 0x0106 : 0x0607);
- }
-
-
- Ä»¿ßá¡¿Ñ »α«úαá¼¼δ: editor.c
- -----------------------------------------------------------------
-
- Åα«úαá¼¼á editor.c ß«ñÑαª¿Γ α∩ñ «»ÑαáΓ«α«ó #define, ¬«Γ«αδÑ
- π»αáó½∩εΓ πßΓá¡«ó¬«⌐ »«º¿µ¿¿ Γáíπ½∩µ¿¿ ó «¬¡Ñ αÑñá¬Γ«αá. ç¡áτÑ¡¿Ñ
- ú½«íá½∞¡«⌐ »ÑαѼѡ¡«⌐ ÆÇé «»αÑñѽѡ« αáó¡δ¼ 4, τΓ« πßΓá¡áó½¿óáÑΓ
-
- - 10 -
- »«º¿µ¿ε Γáíπ½∩µ¿¿ ó τÑΓδαÑ ½εíδσ ß¿¼ó«½á. ÄßΓá½∞¡δÑ ú½«íá½∞¡δÑ
- »ÑαѼѡ¡δÑ - NEXTAB, LASTTAB ¿ PREVTAB - ∩ó½∩εΓß∩
- ¼á¬α«óδαáªÑ¡¿∩¼¿, »«ºó«½∩εΘ¿¼¿ π½πτΦ¿Γ∞ πñ«í«τ¿ΓáѼ«ßΓ∞ ΓѬßΓá
- »α«úαá¼¼δ ó µÑ½«¼. îá¬α«ß curr ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ß¿¼ó«½ ó
- íπΣÑαÑ αÑñá¬Γ¿α«óá¡¿∩ ó ºáó¿ß¿¼«ßΓ¿ «Γ º¡áτÑ¡¿∩ Ñú« ¬««αñ¿¡áΓ ó
- «¬¡Ñ, ºáñáóáѼδσ áαúπ¼Ñ¡ΓἿ X ¿ Y. îá¬α«ß lineno ó«ºóαáΘáÑΓ
- ¡«¼Ñα ßΓ᫬¿ ó íπΣÑαÑ, ¬«Γ«αδ⌐ ß««ΓóÑΓßΓóπÑΓ «Γ¡«ß¿Γѽ∞¡«¼π
- ¡«¼Ñαπ ßΓ᫬¿ ó «¬¡Ñ αÑñá¬Γ«αá, ºáñáóáѼ«ú« º¡áτÑ¡¿Ñ¼ áαúπ¼Ñ¡Γá
- y.
-
- ìѬ«Γ«αδÑ »ÑαѼѡ¡δÑ, «íΩ∩ó½Ñ¡¡δÑ ¬á¬ external, ∩ó½∩εΓß∩
- óδτ¿ß½∩Ñ¼δ¼¿ ¿ »αÑñ¡áº¡áτÑ¡δ »αѪñÑ óßÑú« ñ½∩ ß«¬αáΘÑ¡¿∩ τ¿ß½á
- óδτ¿ß½¿Γѽ∞¡δσ «»Ñαᵿ⌐ ó ΓѬßΓÑ »α«úαá¼¼δ, τΓ« ñѽáÑΓ ½¿ßΓ¿¡ú
- í«½ÑÑ πñ«í«τ¿ΓáѼδ¼. ÅÑαѼѡ¡á∩ wht »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ óδß«Γδ
- ¼á¬ß¿¼á½∞¡« 󫺼«ª¡«⌐ «í½áßΓ¿ ó «¬¡Ñ, «Γó«ñ¿¼«⌐ »«ñ ΓѬßΓ; »α¿
- óδτ¿ß½Ñ¡¿¿ º¡áτÑ¡¿∩ wht ñѽáÑΓß∩ ¬«ααѬµ¿∩ ¡á ¡á½¿τ¿Ñ ß¿¼ó«½«ó
- αἬ¿ «¬¡á. ÅÑαѼѡ¡á∩ wwd »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ Φ¿α¿¡δ ¼á¬ß¿¼á½∞¡«
- 󫺼«ª¡«⌐ «í½áßΓ¿, «Γó«ñ¿¼«⌐ »«ñ ΓѬßΓ, ß πτÑΓ«¼ ¡á½¿τ¿∩ ß¿¼ó«½«ó
- αἬ¿ «¬¡á. ÅÑαѼѡ¡á∩ wsz ß«ñÑαª¿Γ αẼÑα «í½áßΓ¿ «¬¡á,
- «Γó«ñ¿¼«⌐ »«ñ ΓѬßΓ. ÅÑαѼѡ¡á∩ lines ß«ñÑαª¿Γ ¬«½¿τÑßΓó« ßΓ᫬
- ΓѬßΓá, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ß«σαá¡Ñ¡δ ó ΓѬßΓ«ó«¼ íπΣÑαÑ. Åáαá¼ÑΓα
- endptr ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ ¡á »«º¿µ¿ε »«ß½Ññ¡Ñú« ß¿¼ó«½á ó íπΣÑαÑ
- »½εß Ññ¿¡¿µá. ç¡áτÑ¡¿Ñ lstptr - π¬áºáΓѽ∞ ¡á »«ß½Ññ¡¿⌐, «Γ½¿τ¡δ⌐
- «Γ »α«íѽá, ß¿¼ó«½, σαá¡∩Θ¿⌐ß∩ ó íπΣÑαÑ. ç¡áτÑ¡¿Ñ topptr ∩ó½∩ÑΓß∩
- π¬áºáΓѽѼ ¡á »Ñαóδ⌐ ß¿¼ó«½, σαá¡∩Θ¿⌐ß∩ ó íπΣÑαÑ. ô¬áºáΓѽ∞ bfptr
- ¿ß»«½∞ºπÑΓß∩ »α¿ ½¿ßΓá¡¿¿ ΓѬßΓá »«ßΓαá¡¿τ¡« ¿½¿ ß¬α«½½¿¡úá
- ΓѬßΓá; «¡ óßÑúñá π¬áºδóáÑΓ ¡á ß¿¼ó«½ ó íπΣÑαÑ ΓѬßΓá, ¬«Γ«αδ⌐ ó
- ñá¡¡δ⌐ ¼«¼Ñ¡Γ «Γ«íαáªáÑΓß∩ ó ½Ñó«¼ óÑασ¡Ñ¼ πú½π «¬¡á.
-
- öπ¡¬µ¿∩ text_editor óδºδóáÑΓß∩ ó ß½πτáÑ, Ñß½¿ »«½∞º«óáΓѽε
- »«¡áñ«í¿½«ß∞ óó«ñ¿Γ∞ ¿½¿ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ΓѬßΓ ó íπΣÑαÑ. ū߽Ñ
- ¿¡¿µ¿á½¿ºáµ¿¿ Σπ¡¬µ¿¿ »α«¿ßσ«ñ¿Γ óδτ¿ß½Ñ¡¿Ñ ß««ΓóÑΓßΓóπεΘ¿σ
- º¡áτÑ¡¿⌐ »ÑαѼѡ¡δσ, ¿ ¬παß«α πßΓá¡áó½¿óáÑΓß∩ ó ¡áτá½∞¡πε »«º¿µ¿ε
- ß ¬««αñ¿¡áΓἿ (0,0). Åα¿ óó«ñÑ »«½∞º«óáΓѽѼ ß¿¼ó«½«ó ß
- ¬½áó¿áΓπαδ áóΓ«¼áΓ¿τÑ߬¿ «ßπΘÑßΓó½∩ÑΓß∩ »α«óÑα¬á óó«ñá ¡á ¡á½¿τ¿Ñ
- »αÑαδóá¡¿⌐ «Γ Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ ¿ π»αáó½∩εΘ¿σ ß¿ú¡á½«ó. Åα¿
- ¡áªáΓ¿¿ »«½∞º«óáΓѽѼ ¬½áó¿Φ¿ <ééÄä> áóΓ«¼áΓ¿τÑ߬¿ óδºδóáÑΓß∩
-
- - 11 -
- Σπ¡¬µ¿∩ carrtn. ìáªáΓ¿Ñ ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩ ¬παß«α«¼ <æΓαѽ¬á
- 󡿺> »α¿óÑñÑΓ ¬ ó맮óπ Σπ¡¬µ¿¿ downward. ìáªáΓ¿Ñ ¬½áó¿Φ
- <æΓαá¡¿µá óóÑασ> ¿ <æΓαá¡¿µá 󡿺> »α¿óÑñπΓ ¬ ó맮óπ Σπ¡¬µ¿⌐
- upward ¿½¿ downward ß««ΓóÑΓßΓóÑ¡¡« ñ½∩ «íαáí«Γ¬¿ «Γ«íαáªÑ¡¡δσ ó
- «¬¡Ñ ßΓ᫬ ΓѬßΓá. è½áó¿Φ¿ <TÇé> ¿ <SHIFT/TAB>) ó맮óπΓ ¿º¼Ñ¡Ñ¡¿Ñ
- º¡áτÑ¡¿∩ ΓѬπΘÑ⌐ ¬««αñ¿¡áΓδ X ¬παß«αá, »ÑαѼÑßΓ¿ó »«ß½Ññ¡¿⌐ ó
- ß½ÑñπεΘπε ¿½¿ »αÑñδñπΘπε »«º¿µ¿ε Γáíπ½∩µ¿¿. è½áó¿Φ¿ <Ctrl/ßΓαѽ¬á
- ó»αáó«> »α¿óÑñπΓ ¬ ó맮óπ Σπ¡¬µ¿⌐ fore_word ¿½¿ back_word
- ß««ΓóÑΓßΓóÑ¡¡«. <Ctrl/é> »α¿óÑñÑΓ ¬ ¿º¼Ñ¡Ñ¡¿ε ¬««αñ¿¡áΓδ π
- ¬παß«αá, »«º¿µ¿«¡¿α«óáó Ñú« ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á. <Ctrl/Æ>
- »«º¿µ¿«¡¿απÑΓ ¬παß«α ó óÑασ¡Ñ⌐ τáßΓ¿ φ¬αá¡á, ¿º¼Ñ¡∩∩ º¡áτÑ¡¿Ñ Ñú«
- ¬««αñ¿¡áΓδ Y. <Ctrl/Home> »α¿óÑñÑΓ ¬ »ÑαѼÑΘÑ¡¿ε ¬παß«αá ó Γ«τ¬π
- ß ¬««αñ¿¡áΓἿ (0,0) (¿º¼Ñ¡¿ó ß««ΓóÑΓßΓóÑ¡¡« º¡áτÑ¡¿∩
- ¬««αñ¿¡áΓ¡δσ áαúπ¼Ñ¡Γ«ó ¬παß«αá X ¿ Y), »ÑαÑ«»αÑñѽ¿Γ º¡áτÑ¡¿Ñ
- bfptr ¡á áñαÑß ¡áτá½á íπΣÑαá ¿ ó맮óÑΓ Σπ¡¬µ¿ε display_text ñ½∩
- óδñáτ¿ ¡«ó«⌐ ¿¡Σ«α¼áµ¿¿ ¡á φ¬αá¡ ¿º íπΣÑαá. è½áó¿Φá <èπαß«α ó
- ¡áτὫ φ¬αá¡á> (<Home>) «í¡π½∩ÑΓ ¬««αñ¿¡áΓπ ¬παß«αá X.
- <Ctrl/END>) ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε find_end ñ½∩ »«¿ß¬á »«ß½Ññ¡Ñú«
- ß¿¼ó«½á ó íπΣÑαÑ ¿ óδñáτ¿ ΓѬßΓá ¡á φ¬αá¡. <END> ¿ß»«½∞ºπÑΓ
- Σπ¡¬µ¿ε find_end ñ½∩ »«º¿µ¿«¡¿α«óá¡¿∩ ¬παß«αá (¿ ¿º¼Ñ¡Ñ¡¿∩ Ñú«
- ¬««αñ¿¡áΓδ X) ó ¬«¡µÑ ΓѬπΘÑ⌐ ßΓ᫬¿ ΓѬßΓá. <Up arrow> ó맮óÑΓ
- Σπ¡¬µ¿ε upward. ìáªáΓ¿Ñ <F2> ¿½¿ <ESC> ß¿ú¡á½¿º¿απÑΓ « ºáóÑαΦÑ¡¿¿
- óó«ñá ΓѬßΓá. <Left arrow> ¿ <Backspace>) »α¿ó«ñ∩Γ ¬ »ÑαѼÑΘÑ¡¿ε
- ¬παß«αá ¡á «ñ¡π »«º¿µ¿ε ó½Ñó«, óδºδóá∩ ñ½∩ φΓ«ú« Σπ¡¬µ¿ε
- backspace. è½áó¿Φá <çáí«⌐> (<Backspace>) ó φΓ«¼ ß½πτáÑ ¡Ñ
- úÑ¡Ñα¿απÑΓ ó »α«úαá¼¼Ñ ¬«ñá, ß««ΓóÑΓßΓóπεΘÑú« ¬½áó¿ΦÑ <DEL>,
- ¬«Γ«αá∩ π¡¿τΓ«ªáÑΓ ß¿¼ó«½ ó »«º¿µ¿¿ ¬παß«αá, «íαáΘá∩ß∞ ñ½∩ φΓ«ú«
- ¬ Σπ¡¬µ¿¿ movmem. <ALT/D> »α¿ó«ñ¿Γ ¬ ó맮óπ delete_line. <Ctrl/D>
- óδºδóáÑΓ Σπ¡¬µ¿ε delete _word. è½áó¿Φá <INS> »ÑαѬ½ετáÑΓ Σ½áú
- inserting ¿ óδºδóáÑΓ Σπ¡¬µ¿ε insert_line ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ
- ¬παß«αá. <F3> óδºδóáÑΓ erase_buffer. <F4> óδºδóáÑΓ paraform.
- è½áó¿Φ¿ <F5> ¿ <F6> πßΓá¡áó½¿óáεΓ º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ blkbeg ¿
- blkend ñ½∩ ΓѬπΘÑ⌐ ßΓ᫬¿ ΓѬßΓá. ¥Γ¿ ªÑ ¬½áó¿Φ¿ »α¿ó«ñ∩Γ ¬
- «íαáΘÑ¡¿ε ¬ Σπ¡¬µ¿¿ display_text ñ½∩ «Γ«íαáªÑ¡¿∩ í½«¬á ΓѬßΓá ó
- ¿¡óÑαß¡«¼ αѪ¿¼Ñ. è½áó¿Φ¿ <F7>, <F8> ¿ <F9> »α¿ó«ñ∩Γ ¬ ó맮óπ
- Σπ¡¬µ¿⌐ move_ block, copy_block ¿ delete_block ß««ΓóÑΓßΓóÑ¡¡«.
- è½áó¿Φá <F10> «í¡π½∩ÑΓ º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ blkbeg ¿ blkend ¿
-
- - 12 -
- óδºδóáÑΓ Σπ¡¬µ¿ε display_text. ìáªáΓ¿Ñ ¬½áó¿Φ¿ <æΓαѽ¬á ó»αáó«>
- (<Right arrow>) »α¿ó«ñ¿Γ ¬ ó맮óπ Σπ¡¬µ¿¿ forward. àß½¿ óó«ñ¿¼δ⌐
- »«½∞º«óáΓѽѼ ß¿¼ó«½ «Γ½¿τáÑΓß∩ «Γ αáßß¼«ΓαÑ¡¡δσ óδΦÑ ¿ ∩ó½∩ÑΓß∩
- «ñ¡¿¼ ¿º «Γ«íαáªáѼδσ ß¿¼ó«½«ó ¬«ñá ASCII, Γ« «¡ ¬«»¿απÑΓß∩ ó
- íπΣÑα. Åα¿ φΓ«¼ ó¡áτá½Ñ á¡á½¿º¿απÑΓß∩ ß¿Γπᵿ∩ ¡á »ÑαÑ»«½¡Ñ¡¿Ñ
- íπΣÑαá ó αѺπ½∞ΓáΓÑ óó«ñá ß¿¼ó«½á (óó«ñ ß¿¼ó«½á ¼«ªÑΓ »α¿óÑßΓ¿
- ó»«ß½ÑñßΓó¿¿ ¬ óδσ«ñπ ºá »αÑñѽδ íπΣÑαá Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿
- óßΓáó¬á ß¿¼ó«½á ó αѪ¿¼Ñ 鿯ÇéèÇ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ »«ΓÑαÑ
- »«ß½Ññ¡Ñú« ß¿¼ó«½á αѺπ½∞ΓáΓá «»Ñαᵿ¿). çáΓѼ, Ñß½¿ ó¬½ετÑ¡
- αѪ¿¼ 鿯ÇéèÇ, ΓѬπΘá∩ ßΓ᫬á ßñó¿úáÑΓß∩ ¡á «ñ¿¡ ß¿¼ó«½ ó»αáó«,
- »«ß½Ñ τÑú« ß¿¼ó«½ ºá»¿ßδóáÑΓß∩ ó íπΣÑα. àß½¿ ó αѺπ½∞ΓáΓÑ
- ñ«íáó½Ñ¡¿∩ ß¿¼ó«½á ó íπΣÑα íδ½ ó¡ÑßÑ¡ »«ß½Ññ¡¿⌐ ß¿¼ó«½, Γ«
- π¬áºáΓѽ∞ lstptr ß««ΓóÑΓßΓóÑ¡¡« ¬«ααÑ¬Γ¿απÑΓß∩, ¿ ΓѬπΘá∩ ßΓ᫬á
- «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩. äá½ÑÑ Σπ¡¬µ¿∩ á¡á½¿º¿απÑΓ
- ß«ßΓ«∩¡¿Ñ "¬«¡Ñµ ß½«óá". àß½¿ »«ß½Ññ¡¿⌐ ß¿¼ó«½ ßΓ᫬¿ «Γ½¿τÑ¡ «Γ
- »α«íѽá, Γ« «τÑαÑñ¡«Ñ ß½«ó« ßτ¿ΓáÑΓß∩ ºáóÑαΦÑ¡¡δ¼. öπ¡¬µ¿∩
- ߬᡿απÑΓ íπΣÑα ß ¡áτá½á ñ« ¬«¡µá («Γ ¼½áñΦÑú« áñαÑßá »«
- ó«ºαáßΓá¡¿ε áñαÑß«ó) ñ« ΓÑσ »«α, »«¬á ¡Ñ ñ«ßΓ¿ú¡ÑΓ ¬«¡µá íπΣÑαá
- ¿½¿ ¡Ñ «í¡áαπª¿Γ ñóπσ ß½ÑñπεΘ¿σ »«ñα∩ñ »α«íѽ«ó. çáΓѼ «¡á
- ßñó¿úáÑΓ ΓѬßΓ ¡á «ñ¡π »«º¿µ¿ε ó»αáó«, ¡áτ¿¡á∩ ß« ß½ÑñπεΘÑ⌐
- ßΓ᫬¿ «Γ¡«ß¿Γѽ∞¡« ßΓ᫬¿ ΓѬßΓá, ó ¬«Γ«α«⌐ «í¡áαπªÑ¡ Σá¬Γ
- ºáóÑαΦÑ¡¿∩ ß½«óá. Æá¬¿¼ «íαẫ¼, φΓá »α«µÑñπαá ß«ºñáÑΓ »α«¼ÑªπΓ«¬
- ¼Ñªñπ ºáóÑαΦÑ¡¡δ¼ (ºá¬«¡τÑ¡¡δ¼) ß½«ó«¼ ¿ ΓѬßΓ«¼ ß½ÑñπεΘÑ⌐
- ßΓ᫬¿. öπ¡¬µ¿∩ lastword óδºδóáÑΓß∩ ñ½∩ á¡á½¿ºá ¡«ó«ú« ß¿¼ó«½á,
- Ñß½¿ «¡ ∩ó½∩ÑΓß∩ ß¿¼ó«½«¼, óó«ñ¿¼δ¼ ó »«ß½Ññ¡ÑÑ ß½«ó«, ¿½¿ Ñß½¿
- Σá¬Γ ºáóÑαΦÑ¡¿∩ «τÑαÑñ¡«ú« ß½«óá ∩ó¿½ß∩ αѺπ½∞ΓáΓ«¼ óßΓáó¬¿ ó
- »αÑñδñπΘÑÑ ß½«ó« ßΓ᫬¿. ¥Γá »α«óÑα¬á «ßπΘÑßΓó½∩ÑΓß∩ »α«úαá¼¼«⌐ ó
- ß½πτáÑ ¿º¼Ñ¡Ñ¡¿∩ ¼ÑßΓ«»«½«ªÑ¡¿∩ ¬παß«αá »«ß½Ñ «í¡áαπªÑ¡¿∩ ¬«¡µá
- ß½«óá. ÉѺπ½∞ΓáΓ Γᬫ⌐ »α«óÑન ºá»«¼¿¡áÑΓß∩ ó »ÑαѼѡ¡«⌐ svlw.
- è««αñ¿¡áΓá X »α¿¡¿¼áÑΓ º¡áτÑ¡¿Ñ ¬«¡µá ßΓ᫬¿ ΓѬßΓá. àß½¿ ß¿¼ó«½,
- »αÑñΦÑßΓóπεΘ¿⌐ »«ß½Ññ¡Ñ¼π ß¿¼ó«½π, «Γ½¿τÑ¡ «Γ »α«íѽá, Γ« ñ½∩
- »«º¿µ¿«¡¿α«óá¡¿∩ ¬παß«αá ó ¡áτá½Ñ ß½ÑñπεΘÑú« ß½«óá (¿ ¿º¼Ñ¡Ñ¡¿∩
- ¬««αñ¿¡áΓδ X) ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ back_word. öπ¡¬µ¿∩ carrtn
- óδºδóáÑΓß∩ ñ½∩ ½«ú¿τÑ߬«⌐ óßΓáó¬¿ ¡«ó«⌐ ßΓ᫬¿ ó ΓѬπΘÑ⌐
- X-»«º¿µ¿¿. (ìá ßἫ¼ ñÑ½Ñ Σ¿º¿τÑ߬«⌐ óßΓáó¬¿ ßΓ᫬¿
- ¡Ñ»«ßαÑñßΓóÑ¡¡« ó íπΣÑα ¡Ñ »α«¿ßσ«ñ¿Γ ó ß¿½π Γ«ú«, τΓ« íπΣÑα
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ «íδτ¡δ⌐ ñóπ¼Ñα¡δ⌐ ¼áßß¿ó »α∩¼«πú«½∞¡«⌐ Σ«α¼δ.
-
- - 13 -
- Å«φΓ«¼π «ßπΘÑßΓó½∩ÑΓß∩ ½¿Φ∞ ßñó¿ú ΓѬßΓá ¿ «ßó«í«ªñÑ¡¿Ñ ó¡πΓα¿
- ¡Ñú« »α«ßΓαá¡ßΓóá). èπαß«α »«º¿µ¿«¡¿απÑΓß∩ ¡á ß¿¼ó«½Ñ, ß½ÑñπεΘ¿¼
- ºá ß¿¼ó«½«¼, ¡Ñ»«ßαÑñßΓóÑ¡¡« ñ«íáó½Ñ¡¡δ¼ ó íπΣÑα. öπ¡¬µ¿∩
- forward óδºδóáÑΓß∩, ¡Ñ «íαáΘá∩ 󡿼᡿∩ ñáªÑ ¡á Σá¬Γ «¬«¡τá¡¿∩
- ß½«óá, ñ½∩ ¬«ααѬµ¿¿ ¬««αñ¿¡áΓδ X.
-
- öπ¡¬µ¿∩ erase_buffer «Γ¬αδóáÑΓ «¬¡« ¿ ºá»αáΦ¿óáÑΓ π
- »«½∞º«óáΓѽ∩ αáºαÑΦÑ¡¿Ñ ¡á óδ»«½¡Ñ¡¿Ñ ¬«¼á¡ñδ «τ¿ßΓ¬¿ (erase). Å«
- ß«ú½áΦÑ¡¿ε »«½∞º«óáΓѽ∩ Σπ¡¬µ¿∩ «τ¿ΘáÑΓ íπΣÑα ¿ »ÑαÑ«»αÑñѽ∩ÑΓ
- º¡áτÑ¡¿∩ óßÑσ »ÑαѼѡ¡δσ ¿ π¬áºáΓѽÑ⌐.
-
- öπ¡¬µ¿∩ lastword »α«ó«ñ¿Γ á¡á½¿º ¬««αñ¿¡áΓδ X αáß»«½«ªÑ¡¿∩
- ¬παß«αá ó »«ß½Ññ¡Ñ¼ ß½«óÑ ßΓ᫬¿, «»αÑñѽ∩Ѽ«⌐ ¬««αñ¿¡áΓ«⌐ Y.
-
- öπ¡¬µ¿∩ last_char »ÑαÑ«»αÑñѽ∩ÑΓ ¬««αñ¿¡áΓπ Y αáß»«½«ªÑ¡¿∩
- ¬παß«αá, »α¿ßóá¿óá∩ Ñ⌐ º¡áτÑ¡¿Ñ ¡á Ññ¿¡¿µπ í«½∞ΦÑ, τѼ »«º¿µ¿∩
- αáß»«½«ªÑ¡¿∩ »«ß½Ññ¡Ñú« «Γ«íαáªáѼ«ú« ß¿¼ó«½á ó ßΓ᫬Ñ.
-
- öπ¡¬µ¿∩ test_para óδºδóáÑΓß∩ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿
- »ÑαÑΣ«α¼áΓ¿α«óá¡¿∩ »áαáúαáΣá ñ½∩ »α«óÑન 󫺼«ª¡«ßΓ¿ Ñú«
- óδ»«½¡Ñ¡¿∩. ÅÑαѬ½ετáΓѽ∞ ¬½áó¿áΓπαδ <Scroll Lock> ñ«½ªÑ¡
- ¡áσ«ñ¿Γ∞ß∩ ó ó䬽ετÑ¡¡«¼ ß«ßΓ«∩¡¿¿ (off), ¿ τ¿ß½« ºáóÑαΦáεΘ¿σ
- »α«íѽ«ó ΓѬπΘÑ⌐ ßΓ᫬¿ ΓѬßΓá ñ«½ª¡« íδΓ∞ í«½∞ΦÑ ñ½¿¡δ »Ñαó«ú«
- ß½«óá ß½ÑñπεΘÑ⌐ ßΓ᫬¿ ΓѬßΓá. àß½¿ φΓ« πß½«ó¿Ñ óδ»«½¡∩ÑΓß∩,
- Σπ¡¬µ¿∩ test_para óδºδóáÑΓ Σπ¡¬µ¿ε paraform, ¬«Γ«αá∩ »«ºó«½∩ÑΓ
- »ÑαÑΣ«α¼áΓ¿α«óáΓ∞ »áαáúαáΣ.
-
- öπ¡¬µ¿∩ trailing_spaces «ßπΘÑßΓó½∩ÑΓ »«ñßτÑΓ ºáóÑαΦáεΘ¿σ
- »α«íѽ«ó ßΓ᫬¿ ΓѬßΓá.
-
- öπ¡¬µ¿∩ first_woldlen »«ñßτ¿ΓδóáÑΓ ñ½¿¡π »Ñαó«ú« ß½«óá
- ß½ÑñπεΘÑ⌐ ßΓ᫬¿ ΓѬßΓá.
-
- öπ¡¬µ¿∩ paraform «ßπΘÑßΓó½∩ÑΓ »ÑαÑΣ«α¼áΓ¿α«óá¡¿Ñ »áαáúαáΣá,
- Ñß½¿, ÑßΓÑßΓóÑ¡¡«, »αÑñóáα¿Γѽ∞¡« »áαáúαáΣ íδ½ «Γñѽѡ «Γ
- «ßΓá½∞¡«ú« ΓѬßΓá ñóπ¼∩ »πßΓ묨 ßΓα«¬á¼¿. öπ¡¬µ¿∩ paraform
- óδºδóáÑΓß∩ ó αѺπ½∞ΓáΓÑ ¡áªáΓ¿∩ »«½∞º«óáΓѽѼ ¬½áó¿Φ¿ <F4> ¿½¿ ó
-
- - 14 -
- αѺπ½∞ΓáΓÑ αáí«Γδ Σπ¡¬µ¿¿ test_para, «ßπΘÑßΓó½∩εΘÑ⌐
- áóΓ«¼áΓ¿τÑ߬«Ñ »α¿¡∩Γ¿Ñ αÑΦÑ¡¿∩ « 󫺼«ª¡«ßΓ¿ »ÑαÑΣ«α¼áΓ¿α«óá¡¿∩
- »áαáúαáΣá. é« óßÑσ φΓ¿σ ß½πτá∩σ, Ñß½¿ »αÑñóáα¿Γѽ∞¡« »ÑαѼѡ¡δÑ
- blkbeg ¿ blkend ¡Ñ »«½πτ¿½¿ ß««ΓóÑΓßΓóπεΘ¿σ º¡áτÑ¡¿⌐ ñ½∩ í½«¬á
- ΓѬßΓá, ó¬½ετáεΘÑú« ΓѬπΘ¿⌐ »áαáúαáΣ, Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ
- ß««ΓóÑΓßΓóπεΘ¿Ñ º¡áτÑ¡¿∩ φΓ¿σ »ÑαѼѡ¡δσ. ç¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
- blkbeg πßΓá¡áó½¿óáÑΓß∩ αáó¡δ¼ ΓѬπΘÑ⌐ ßΓα«¬Ñ ΓѬßΓá. öπ¡¬µ¿∩
- »α«ß¼áΓα¿óáÑΓ ΓѬßΓ ó»ÑαÑñ, ¡áτ¿¡á∩ ß ΓѬπΘÑ⌐ ßΓ᫬¿, ¡á »αÑñ¼ÑΓ
- ¡á½¿τ¿∩ ñóπσ »πßΓδσ ßΓ᫬ (ßΓ᫬, µÑ½¿¬«¼ ß«ßΓ«∩Θ¿σ ¿º »α«íѽ«ó)
- ¿½¿ ñ«ßΓ¿ªÑ¡¿∩ ¬«¡µá íπΣÑαá, πßΓá¡áó½¿óá∩ »α¿ φΓ«¼ º¡áτÑ¡¿Ñ
- »ÑαѼѡ¡«⌐ blkend.
-
- ÅÑαÑΣ«α¼áΓ¿α«óá¡¿Ñ »áαáúαáΣá Σπ¡¬µ¿∩ ¡áτ¿¡áÑΓ ß«
- ߬᡿α«óá¡¿∩ ΓѬßΓá »«ß½Ñ »αÑñΦÑßΓóπεΘ¿σ »áαáúαáΣπ ½¿ñ¿απεΘ¿σ
- »α«íѽ«ó. àß½¿ «¡á «í¡áαπª¿½á ¡Ñ»πßΓ«Ñ ß½«ó«, Γ« ßαáºπ ªÑ
- ¡áτ¿¡áÑΓß∩ »α«µÑßß ¬«»¿α«óá¡¿∩ φΓ«ú« ß½«óá ó ¡áτὫ íπΣÑαá. àß½¿
- «í¡áαπªÑ¡ »α«íѽ, Γ« Σπ¡¬µ¿∩ ½«ú¿τÑ߬¿ π¡¿τΓ«ªáÑΓ φëà »α«íѽ. é
- »α«µÑßßÑ ¬«»¿α«óá¡¿∩ ß½«óá Σπ¡¬µ¿∩ á¡á½¿º¿απÑΓ ß¿Γπáµ¿ε ¡á
- »αÑñ¼ÑΓ ºáóÑαΦÑ¡¿∩ ßΓ᫬¿ ΓѬßΓá, ºáΓѼ ó«ºóαáΘáÑΓß∩ ó ¡áτὫ
- ¬«»¿απѼ«ú« ß½«óá, óßΓáó½∩ÑΓ »α«íѽδ ó íπΣÑα ¿ »α«ñ«½ªáÑΓ αáí«Γπ
- ñá½ÑÑ. é ßó∩º¿ ß φΓ¿¼ 󫺼«ª¡« ½«ú¿τÑ߬«Ñ ߪáΓ¿Ñ «í½áßΓ¿,
- ºá¡¿¼áѼ«⌐ úαπ»»«⌐ ß½«ó, »πΓѼ πñá½Ñ¡¿∩ ¿ºíδΓ«τ¡δσ »α«íѽ«ó. é
- αѺπ½∞ΓáΓÑ αáí«Γδ Σπ¡¬µ¿¿ ¼«úπΓ íδΓ∞ «íαẫóá¡δ «ñ¡á ¿½¿ í«½ÑÑ
- »πßΓδσ ßΓ᫬, ñ½∩ πñá½Ñ¡¿∩ ¬«Γ«αδσ ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩
- delete_block.
-
- öπ¡¬µ¿∩ blank_line ¿ß»«½∞ºπÑΓß∩ ó Γ«¼ ß½πτáÑ, Ñß½¿
- ߻ѵ¿Σ¿µ¿α«óá¡¡á∩ ßΓα«¬á µÑ½¿¬«¼ ß«ßΓ«¿Γ ¿º »α«íѽ«ó ñ½∩ á¡á½¿ºá
- ßΓ᫬¿.
-
- öπ¡¬µ¿∩ delete_word π¡¿τΓ«ªáÑΓ ß½«ó« ó íπΣÑαÑ. àß½¿ ΓѬπΘÑÑ
- º¡áτÑ¡¿Ñ ¬««αñ¿¡áΓδ ¼ÑßΓ«αáß»«½«ªÑ¡¿∩ ¬παß«αá X ß««ΓóÑΓßΓóπÑΓ
- »α«íѽπ, Γ« Σπ¡¬µ¿∩ π¡¿τΓ«ªáÑΓ »α«íѽ, »αÑñΦÑßΓóπεΘ¿⌐ ß½ÑñπεΘѼπ
- ß½«óπ; Γᬿ¼ «íαẫ¼, Σπ¡¬µ¿∩ π¡¿τΓ«ªáÑΓ ß½«ó«, ¡áτ¿¡á∩ ß
- »«º¿µ¿¿, ߻ѵ¿Σ¿µ¿α«óá¡¡«⌐ ¬«αñ¿¡áΓ«⌐ X, ¡« »«ß½Ñ
- »α«íѽá, ßΓ«∩ΘÑú« ºá »αÑñΦÑßΓóπεΘ¿¼ ß½«ó«¼, ñ« ¡áτá½á ß½ÑñπεΘÑú«
- ß½«óá.
-
- - 15 -
-
- öπ¡¬µ¿∩ delete_line π¡¿τΓ«ªáÑΓ ßΓ᫬π ΓѬßΓá ß »«ß½ÑñπεΘ¿¼
- ßñó¿ú«¼ óßÑú« ΓѬßΓá. é¡áτá½Ñ Σπ¡¬µ¿∩ óδτ¿ß½∩ÑΓ áñαÑß »Ñαó«ú«
- ß¿¼ó«½á ΓѬπΘÑ⌐ ¿ ß½ÑñπεΘÑ⌐ ßΓ᫬¿. çáΓѼ Σπ¡¬µ¿∩ «»αÑñѽ∩ÑΓ
- «íΩѼ ΓѬßΓá, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞ ßñó¿¡πΓ, ¬á¬ αáßßΓ«∩¡¿Ñ «Γ
- ß½ÑñπεΘÑ⌐ (ºá π¡¿τΓ«ªÑ¡¡«⌐) ßΓ᫬¿ ñ« ¬«¡µá íπΣÑαá ΓѬßΓá. ū߽Ñ
- »ÑαÑτ¿ß½Ñ¡¡δσ ñÑ⌐ßΓó¿⌐ «ßπΘÑßΓó½∩ÑΓß∩ ßñ󿪬á ΓѬßΓá, ¿
- »ÑαѼѡ¡á∩ lstptr »α¿¡¿¼áÑΓ ¡«ó«Ñ º¡áτÑ¡¿Ñ. üπΣÑα ºá»«½¡∩ÑΓß∩ ñ«
- ¬«¡µá ¿ºíδΓ«τ¡δ¼¿ »α«íѽἿ.
-
- öπ¡¬µ¿∩ delete_block αÑí«ΓáÑΓ Γ«τ¡« ΓᬠªÑ, ¬á¬ ¿ Σπ¡¬µ¿∩
- delete_line, «ñ¡á¬« «»Ñα¿απÑΓ ß í½«¬«¼ ΓѬßΓá, ¬«Γ«αδ⌐ ß«ñÑনΓ
- í«½ÑÑ «ñ¡«⌐ ßΓ᫬¿ ΓѬßΓá.
-
- öπ¡¬µ¿∩ mvblock ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαѼÑΘÑ¡¿∩ ¿ ¬«»¿α«óá¡¿∩
- í½«¬á ΓѬßΓá. é¡áτá½Ñ »α«¿ßσ«ñ¿Γ αẼÑΘÑ¡¿Ñ ó »á¼∩Γ¿ íπΣÑαá ñ½∩
- σαá¡Ñ¡¿∩ ΓѬßΓá, ¿ í½«¬ ΓѬßΓá »«¼ÑΘáÑΓß∩ ó φëà íπΣÑα. àß½¿
- «»Ñαᵿ∩ »ÑαѼÑΘÑ¡¿∩ í½«¬á ΓѬßΓá »αÑñ»«τΓ¿Γѽ∞¡ÑÑ, τѼ Ñú«
- ¬«»¿α«óá¡¿Ñ, Γ« óδºδóáÑΓß∩ Σπ¡¬µ¿∩ π¡¿τΓ«ªÑ¡¿∩ í½«¬á ΓѬßΓá
- delete_block() ó íπΣÑαÑ αÑñá¬Γ«αá. ÆÑ¬ßΓ ó íπΣÑαÑ αÑñá¬Γ«αá
- ß¼ÑΘáÑΓß∩ ó»αáó«, ¡áτ¿¡á∩ ß ΓѬπΘÑ⌐ ßΓ᫬¿, «ßó«í«ªñá∩ ¼ÑßΓ« ñ½∩
- í½«¬á ΓѬßΓá, ¬«Γ«αδ⌐ íπñÑΓ »ÑαѼÑΘÑ¡ ßεñá ¿½¿ ߬«»¿α«óá¡ ¡á φΓ«
- ¼ÑßΓ«. ÆÑ¬ßΓ ¿º »α«¼ÑªπΓ«τ¡«ú« íπΣÑαá »ÑαѼÑΘáÑΓß∩ ¡á
- «ßó«í«ªñÑ¡¡«Ñ »«ß½Ñ ßñ󿪬¿ ΓѬßΓá »α«ßΓαá¡ßΓó«. Åα«¼ÑªπΓ«τ¡δ⌐
- íπΣÑα πñá½∩ÑΓß∩ ¿º »á¼∩Γ¿ ¿ ó«ßßΓá¡áó½¿óáÑΓß∩ ¿º«íαáªÑ¡¿Ñ «¬¡á
- »«ß½Ñ «íαáΘÑ¡¿∩ ¬ Σπ¡¬µ¿¿ display_text.
-
- öπ¡¬µ¿¿ copy_block ¿ move_block óδºδóáεΓß∩ ñ½∩ ¬«»¿α«óá¡¿∩ ¿
- »ÑαѼÑΘÑ¡¿∩ í½«¬á ΓѬßΓá ß««ΓóÑΓßΓóÑ¡¡«. ¥Γ¿ Σπ¡¬µ¿¿ ¿ß»«½∞ºπεΓ
- mvblock ñ½∩ óδ»«½¡Ñ¡¿∩ 󫺽«ªÑ¡¡δσ ¡á ¡¿σ «»Ñαᵿ⌐.
-
- öπ¡¬µ¿∩ findlast «αúá¡¿ºπÑΓ »«¿ß¬ »«ß½Ññ¡Ñú« º¡áτáΘÑú«
- ß¿¼ó«½á ó íπΣÑαÑ ¿ πßΓá¡áó½¿óáÑΓ π¬áºáΓѽ∞ lstptr ¡á ß½ÑñπεΘπε
- ºá ¡¿¼ »«º¿µ¿ε.
-
- öπ¡¬µ¿∩ carrtn «Γ߽Ѫ¿óáÑΓ ß¿Γπᵿε ó«ºóαáΓá ¬áαÑΓ¬¿ »α¿
- «¬«¡τá¡¿¿ ßΓ᫬¿ ΓѬßΓá ó¡πΓα¿ íπΣÑαá αÑñá¬Γ«αá óß½Ññ ºá
-
- - 16 -
- ñó¿ªÑ¡¿Ñ¼ ¬παß«αá »«½∞º«óáΓѽ∩. Ä¡á óδτ¿ß½∩ÑΓ áñαÑß »Ñαó«ú«
- ß¿¼ó«½á ß½ÑñπεΘÑ⌐ ßΓ᫬¿ ΓѬßΓá »« ΓѬπΘÑ⌐ »«º¿µ¿¿ ß¿¼ó«½á, ó
- ¬«Γ«α«⌐ »«º¿µ¿«¡¿α«óá¡ ¬παß«α. àß½¿ ó¬½ετÑ¡ αѪ¿¼ "éßΓáó¬á
- ß¿¼ó«½á", Σπ¡¬µ¿∩ ñ«½ª¡á «íÑß»Ñτ¿Γ∞ "αáºñó¿úá¡¿Ñ" ßΓ᫬¿ ΓѬßΓá,
- ¬«Γ«α«Ñ ñ«ßΓ¿úáÑΓß∩ ß¼ÑΘÑ¡¿Ñ¼ ΓѬßΓá, ¡áσ«ñ∩ΘÑú«ß∩ ó íπΣÑαÑ
- αÑñá¬Γ«αá, ó»αáó«, ¡áτ¿¡á∩ ß »«º¿µ¿¿, ó ¬«Γ«α«⌐ αáß»«½«ªÑ¡
- ¬παß«α, ¬ ¬«¡µπ ΓѬπΘÑ⌐ ßΓ᫬¿ ¿ ºá»«½¡Ñ¡¿∩ «íαẫóáóΦ¿σß∩ »πßΓ«Γ
- ¿ºíδΓ«τ¡δ¼¿ »α«íѽἿ. ì«óá∩ ßΓα«¬á »«ñóÑαúáÑΓß∩ Γ«τ¡« Γᬫ¼π ªÑ
- ßñó¿úπ ¿ ºá»«½¡Ñ¡¿ε »α«íѽἿ ñ« ¼¿¡¿¼á½∞¡«⌐ ÑÑ ñ½¿¡δ »«ß½Ñ
- «»Ñαᵿ¿ óßΓáó¬¿.
-
- öπ¡¬µ¿∩ downward ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γ߽Ѫ¿óá¡¿∩ ¿º¼Ñ¡Ñ¡¿∩
- ¬««αñ¿¡áΓ ß½ÑñπεΘÑ⌐ (󫺼«ª¡«, ¡«ó«⌐) ßΓ᫬¿ ΓѬßΓá ¿, Ñß½¿
- ó¬½ετÑ¡ αѪ¿¼ "éßΓáó¬á", ñ½∩ »ÑαÑ«»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ π¬áºáΓѽ∩
- lstptr.
-
- ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐, ¬ ¬«Γ«αδ¼ «ßπΘÑßΓó½∩ÑΓß∩ «íαáΘÑ¡¿Ñ,
- ¿ß»«½∞ºπεΓ »α∩¼« ¿½¿ ¬«ßóÑ¡¡« ¬««αñ¿¡áΓδ »«º¿µ¿¿ αáß»«½«ªÑ¡¿∩
- ¬παß«αá. Æá¬¿¼¿ Σπ¡¬µ¿∩¼¿ ∩ó½∩εΓß∩ find_end, backspace,
- fore_word, spaceup, back_word, spacedn, forward, downward ¿
- upward.
-
-
- Åα¿¼Ñα: êß»«½∞º«óá¡¿Ñ αÑñá¬Γ«αá
- -----------------------------------------------------------------
-
- ï¿ßΓ¿¡ú¿ 9.2, 9.3 ¿ 9.4 ñѼ«¡ßΓα¿απεΓ »α¿¼Ñα ¿ß»«½∞º«óá¡¿∩
- «¬«¡¡«ú« αÑñá¬Γ«αá ΓѬßΓ«ó ó ñ¿á½«ú«ó«⌐ »α«úαá¼¼Ñ.
-
- ï¿ßΓ¿¡ú 9.2 ß«ñÑαª¿Γ ΓѬßΓ »α«úαá¼¼δ note.c, ¬«Γ«αá∩
- ∩ó½∩ÑΓß∩ ú½áó¡«⌐ Σπ¡¬µ¿Ñ⌐, «íαáΘáεΘÑ⌐ß∩ ¬ Σπ¡¬µ¿¿ notepad.c,
- ¿ßσ«ñ¡δ⌐ ΓѬßΓ ¬«Γ«α«⌐ »α¿óÑñÑ¡ ó ½¿ßΓ¿¡úÑ 9.3. öπ¡¬µ¿∩ notepad.c
- óδñѽѡá ó «Γñѽ∞¡δ⌐ Σá⌐½ ó ßó∩º¿ ß ΓѼ, τΓ« «¡á ¿ß»«½∞ºπÑΓß∩ ó
- »α¿¼Ñαáσ ¼Ñ¡ε (â½áóá 10) ¿ »α¿ «»¿ßá¡¿¿ αѺ¿ñÑ¡Γ¡δσ πΓ¿½¿Γ (â½áóá
- 12).
-
- ï¿ßΓ¿¡ú 9.4 ß«ñÑαª¿Γ »α¿¼Ñα make-Σá⌐½á Æπαí« æ¿, ó
-
- - 17 -
- ß««ΓóÑΓßΓó¿¿ ß ¬«Γ«αδ¼ ßΓα«¿Γß∩ »α¿¼Ñα ¿ß»«½∞º«óá¡¿∩ «¬«¡¡«ú«
- αÑñá¬Γ«αá.
-
- öπ¡¬µ¿∩ notepad.c «íαáíáΓδóáÑΓ Σá⌐½, ¿¼∩ ¬«Γ«α«ú« «»αÑñѽѡ«
- ó ¼áßß¿óÑ, «»¿ßá¡¡«¼ ¬á¬ external. é ñá¡¡«¼ »α¿¼ÑαÑ φëà ¼áßß¿ó
- «»αÑñѽѡ ó note.c, ¿ ¿¼∩ Σá⌐½á π¬áºá¡« ¬á¬ note.pad. àß½¿ Γᬫ⌐
- Σá⌐½ πªÑ ßπΘÑßΓóπÑΓ ¡á ¼«¼Ñ¡Γ ºá»πß¬á »α¿¼Ñαá, Γ« notepad.c
- ßτ¿ΓδóáÑΓ Ñú« ó íπΣÑα αÑñá¬Γ«αá.
-
- Notepad.c πßΓá¡áó½¿óáÑΓ «¬¡«, ºá¬½ετáÑΓ Ñú« ó αἬπ,
- »α¿ßóá¿óáÑΓ «¬¡π ¡áºóá¡¿Ñ, ¡áº¡áτáÑΓ µóÑΓá ñ½∩ «¬¡á ¿ «Γ«íαáªáÑΓ
- Ñú« ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩. çáΓѼ notepad.c óδºδóáÑΓ Σπ¡¬µ¿ε «¬«¡¡«ú«
- αÑñá¬Γ«αá text_editor. Å« ºáóÑαΦÑ¡¿¿ αáí«Γδ Σπ¡¬µ¿¿ text_editor
- notepad.c π¡¿τΓ«ªáÑΓ «¬¡« ¿ ß«σαá¡∩ÑΓ ßΓ᫬¿ ΓѬßΓá ó íπΣÑαÑ, ó
- ¬«Γ«αδ⌐ íδ½ ºá»¿ßá¡ »«ß½Ññ¡¿⌐ ¡πª¡δ⌐ ΓѬßΓ. çáΓѼ notepad.c
- ºá»¿ßδóáÑΓ ß«ñÑন¼«Ñ íπΣÑαá ó Σá⌐½ (note.pad).
-
- ï¿ßΓ¿¡ú 9.2. note.c
-
- /* ------ note.c ---------*/
-
- #include "twindow.h"
-
- void notepad(void);
- char notefile [] = "note.pad";
-
- main()
- {
- load_help("tcprogs.hlp");
- notepad();
- }
-
-
-
-
- ï¿ßΓ¿¡ú 9.3: notepad.c
-
-
- - 18 -
-
- /* ----------------- notepad.c -----------------*/
-
- #include <stdio.h>
- #include <mem.h>
- #include "twindow.h"
-
- #define LWID 60
- #define WHT 10
- #define PADHT 20
-
- char bf [PADHT] [LWID];
- extern char notefile[];
-
- void notepad()
- {
- WINDOW *wnd;
- FILE *fp, *fopen();
- int i, ctr = 0;
-
- set_help("notepad ",0,0);
- setmem(bf, sizeof bf, ' ');
- if ((fp = fopen(notefile, "rt")) != NULL) {
- while (fread(bf [ctr], LWID, 1, fp))
- ctr++;
- fclose(fp);
- }
- wnd = establish_window
- ((80-(LWID+2))/2, (25-(WHT+2))/2, WHT+2, LWID+2);
- set_border(wnd, 3);
- set_title(wnd, " Note Pad ");
- set_colors(wnd, ALL, BLUE, AQUA, BRIGHT);
- set_colors(wnd, ACCENT, WHITE, BLACK, DIM);
- display_window(wnd);
- text_editor(wnd, bf[0], (unsigned) LWID * PADHT);
- delete_window(wnd);
- ctr = PADHT;
-
- - 19 -
- while (--ctr) {
- for (i = 0; i < LWID; i++)
- if( bf [ctr] [i] != ' ')
- break;
- if (i < LWID)
- break;
- }
- fp = fopen(notefile, "w");
- for (i = 0; i < ctr+1; i++)
- fwrite(bf[i], LWID, 1, fp);
- fclose(fp);
- }
-
-
-
- ï¿ßΓ¿¡ú 9.4 note.prj
-
- note
- notepad(twindow.h)
- editor(twindow.h, keys.h)
- thelp(twindow.h, keys.h)
- twindow(twindow.h, keys.h)
- ibmpc.obj
-
-
-
- ä½∩ óδ»«½¡Ñ¡¿∩ »α¿¼Ñαá óóÑñ¿ΓÑ ¬«¼á¡ñπ
-
- C > note
-
- Å«ß½Ñ Γαá¡ß½∩µ¿¿ ¿ αÑñá¬Γ¿α«óá¡¿∩ óáΦ¿σ »α«úαá¼¼ óδ πó¿ñ¿ΓÑ
- ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩ ¬«»¿ε α¿ßπ¡¬á 9.2. Åα¿ »Ñαó«¼ ºá»π᪥ »α¿¼Ñαá
- Σá⌐½ note.pad íπñÑΓ »πßΓδ¼. Å«ß½Ñ Γ«ú«, ¬á¬ óδ óóÑñÑΓÑ ß »«¼«Θ∞ε
- αÑñá¬Γ«αá ¬á¬πε-½¿í« ¿¡Σ«α¼áµ¿ε, »α¿ óδσ«ñÑ ¿º αÑñá¬Γ«αá »«
- ¬½áó¿ΦÑ <ESC> ¿½¿ <F2> ñá¡¡δÑ íπñπΓ ºá»«¼¡Ñ¡δ ó Σá⌐½Ñ note.pad
- ñ½∩ ñá½∞¡Ñ⌐ΦÑú« ¿ß»«½∞º«óá¡¿∩. àßΓÑßΓóÑ¡¡«, τΓ« Ñß½¿ óδ ºá»«¼¡¿½¿
- ΓѬßΓ, Γ« »α¿ ß½ÑñπεΘѼ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ «¡ íπñÑΓ óá¼
-
- - 20 -
- «Γ«íαáªáΓ∞ß∩ ó «¬¡Ñ αÑñá¬Γ«αá.
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ │
- │ │
- │ │
- │ │
- │ ┌──────────────── Note Pad ──────────────┐ │
- │ │The window notepad can be used to record │ │
- │ │random thoughts, appointments, reminders,│ │
- │ │and daily activities._ │ │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ └─────────────────────────────────────────┘ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 9.2 Åα¿¼Ñα ¿ß»«½∞º«óá¡¿∩ αÑñá¬Γ«αá.
-
-
- Åα¿ óó«ñÑ ΓѬßΓá ¿ Ñú« ñá½∞¡Ñ⌐ΦÑ⌐ «íαáí«Γ¬Ñ ¿ß»«½∞ºπ⌐ΓÑ
- »ÑαÑτÑ¡∞ ¬«¼á¡ñ, «Γ«íαáªÑ¡¡δ⌐ ¡á α¿ßπ¡¬Ñ 9.1. ìáªáó ¬½áó¿Φπ <F1>,
- óδ ¼«ªÑΓÑ »«½πτ¿Γ∞ »ÑαÑτÑ¡∞ φΓ¿σ ¬«¼á¡ñ ¡á φ¬αá¡Ñ ßó«Ñú« ñ¿ß»½Ñ∩.
-
-
-
- ÉѺε¼Ñ
- -----------------------------------------------------------------
-
- êΓá¬, ¼δ αáßß¼«Γαѽ¿ ÑΘÑ «ñ¡π ñ«»«½¡¿Γѽ∞¡πε 󫺼«ª¡«ßΓ∞,
-
- - 21 -
- ¬«Γ«αá∩ ¼«ªÑΓ íδΓ∞ ñ«íáó½Ñ¡á ó ß»¿ß«¬ í¿í½¿«ΓѬ¿ »«ññÑ᪬¿
- «¬«¡¡«⌐ ΓÑσ¡«½«ú¿¿. Æá¬¿¼ «íαẫ¼, ¿ºπτÑ¡¡«Ñ óἿ ¡á ¡áßΓ«∩Θ¿⌐
- ¼«¼Ñ¡Γ »α«úαá¼¼¡«Ñ «íÑß»ÑτÑ¡¿Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¬á¬
- Σπ¡¬µ¿«¡á½∞¡«Ñ ßαÑñßΓó« »«ññÑ᪬¿ ߻ѵ¿á½¿º¿α«óá¡¡δσ ºáñáτ,
- «α¿Ñ¡Γ¿α«óá¡¡δσ ¡á ¿ß»«½∞º«óá¡¿Ñ «¬«¡¡«⌐ ΓÑσ¡«½«ú¿¿. Åα«úαá¼¼¡«Ñ
- «íÑß»ÑτÑ¡¿Ñ »«ºó«½∩ÑΓ «αúá¡¿º«óáΓ∞ ñ¿á½«ú«óπε help-»«ññÑ᪬π,
- Φáí½«¡δ óó«ñá ñá¡¡δσ, á Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ «¬«¡¡δ⌐ ΓѬßΓ«óδ⌐
- αÑñá¬Γ«α. æ½ÑñπεΘÑ⌐ ñ«»«½¡¿Γѽ∞¡«⌐ 󫺼«ª¡«ßΓ∞ε, ¬«Γ«αá∩ ¼«ªÑΓ
- óἿ ß πß»Ñσ«¼ »α¿¼Ñ¡∩Γ∞ß∩, ∩ó½∩ÑΓß∩ ¿Ñαáασ¿τÑ߬á∩ ß¿ßΓÑ¼á ¼Ñ¡ε,
- ¿ß»«½∞ºπѼδσ ó «¬¡Ñ. ¥Γá ß¿ßΓÑ¼á ¼Ñ¡ε ó¬½ετáÑΓ ó ßÑí∩ ߬«½∞º∩ΘÑÑ
- ¼Ñ¡ε-ßΓα«¬π ¿ ß¿ßΓÑ¼π »«∩ó½∩εΘ¿σß∩ ¼Ñ¡ε Γ¿»á "pop-down" (φΓ«Γ Γ¿»
- ¼Ñ¡ε ÑΘÑ ¡áºδóáεΓ "óß»½δóáεΘ¿¼", Γᬠ¬á¬ Ñú« »«∩ó½Ñ¡¿Ñ ¡á φ¬αá¡Ñ
- «τÑ¡∞ ¡á»«¼¿¡áÑΓ φΣΣÑ¬Γ óß»½δΓ¿∩ ¿º "ú½πí¿¡δ" ñ¿ß»½Ñ∩) ñ½∩ óδí«αá
- ¿ óδ»«½¡Ñ¡¿∩ αẽ¿τ¡δσ Σπ¡¬µ¿⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ó ¬«Γ«α«⌐
- ß¿ßΓÑ¼á ¼Ñ¡ε ¿ß»«½∞ºπÑΓß∩.
-
-