70
|
1 Date: Wed, 8 Apr 92 18:51:54 JST
|
|
2 From: gniibe@mri.co.jp (NIIBE Yutaka)
|
|
3 Return-Path: <gniibe@mri.co.jp>
|
|
4 To: handa@etl.go.jp
|
|
5 Subject: note on indent.h, indent.c, and xdisp.c
|
|
6
|
|
7 $B:G8e$KKM$N$d$C$?=$@5$K4X$7$F(B, $B3P=q$rAw$j$^$9!#(B
|
|
8 --
|
|
9 GniiBE
|
|
10 ================ FROM HERE ==============
|
|
11 compute_motion (), display_text_string () $B$K4X$9$k3P=q(B ; -*- Indented-Text -*-
|
|
12 Tue Apr 7 09:35:41 1992
|
|
13 Wed Apr 8 18:26:26 1992
|
|
14 GniiBE <gniibe@mri.co.jp>
|
|
15
|
|
16 column $B$r85$K(B tab $B$N7W;;$O9T$J$o$l$k!#(B
|
|
17
|
|
18 multi width (multi column $B$GESCf$G3d$k$3$H$N$G$-$J$$(B) character
|
|
19 ($B4A;z$J$I(B)$B$,$"$k>l9g(B, $B0l9T$O0lDj$N(B column $B$G$"$k$H$O8B$i$J$$!#(B
|
|
20
|
|
21 ----------
|
|
22 $B$3$s$J>l(B\\
|
|
23 $B9g$,$"$k(B\\
|
|
24 $B$s$G$9!#(B
|
|
25 ----------
|
|
26
|
|
27 $BK\2H$N(B emacs $B$O!V0l9T$O0lDj$N(B column $B$G$"$k!W$H2>Dj$7$F$$$k!#(B
|
|
28 $B$3$NItJ,$r=$@5$9$kI,MW$,$"$k!#(B
|
|
29
|
|
30 struct position $B$K(B tab_offset $B$H$$$&(B member $B$rDI2C$7(B, $B$=$3$K(B
|
|
31 tab_offset $B$NCM$rJ];}$9$k$3$H$G$3$N=$@5$r$*$3$J$&!#(B
|
|
32
|
|
33 $B$3$3$G(B, tab_offset $B$H(B hpos, column $B$N4V$K$O(B,
|
|
34
|
|
35 tab_offset + hpos = column
|
|
36
|
|
37 $B$H$$$&4X78$,$"$k!#$^(B, $BAa$$OC$7$,(B column $B$r$$$A$$$A7W;;$7$J$$$G3P$((B
|
|
38 $B$H$3$C$H$H$$$&$b$s$G$7$g$&!#(B
|
|
39
|
|
40
|
|
41 * indent.h (struct position):
|
|
42 tab_offset $B$H$$$&(B member $B$rDI2C$7$?!#(B
|
|
43
|
|
44 * indent.c (compute_motion):
|
|
45 truncate, lastpos $B$rDI2C!#(B
|
|
46 $B7W;;$NJ}K!$rJQ$($k!#(B
|
|
47 emacs $B$N(B bug $B=$@5!#(B
|
|
48
|
|
49 for ()
|
|
50 {
|
|
51 (1) $B%-%c%i%/%?$,$I$l$@$1?J$`$+7W;;(B;
|
|
52 (2) width $B$rD6$($k$s$@$C$?$i$=$N=hM}(B;
|
|
53 }
|
|
54
|
|
55 $B$N(B (2) $B$N!VD6$($A$c$&!W$N>r7o$r!VD6$($A$c$C$?!W$KJQ99$9(B
|
|
56 $B$k!#0J2<$N$h$&$K$J$k!#(B
|
|
57
|
|
58 for ()
|
|
59 {
|
|
60 (1) $B%-%c%i%/%?$,$I$l$@$1?J$`$+7W;;(B;
|
|
61 (2) width $B$rD6$A$c$C$?$i$=$N=hM}(B;
|
|
62 }
|
|
63
|
|
64 (3-1) $B1[$($A$c$&$G=hM}$5$l$?$O$:$N=hM}(B($B0l$DLa$9(B);
|
|
65 (3-2) $B1[$($A$c$&$N=hM}(B;
|
|
66
|
|
67 (**) pos : buffer $B>e$N0LCV(B
|
|
68 (**) (hpos, vpos) : $B2hLL>e$N0LCV(B
|
|
69
|
|
70 compute_motion $B$O(B
|
|
71 (i) $B$"$k(B (hpos, vpos) $B$^$GI=<($9$k$K$O$I$N(B pos $B$,BP1~$9$k$+(B
|
|
72 (ii) $B$"$k(B pos $B$^$GI=<($7$?$i$I$3$N(B (hpos, vpos) $B$K$J$k$+(B
|
|
73 $B$NFsDL$j$N7W;;$K;H$o$l$k!#(B
|
|
74
|
|
75 $B$=$7$F(B, loop $B$N=*N;>r7o$O(B, (i) $B$N>l9g(B (hpos, vpos), (ii) $B$N>l9g(B
|
|
76 pos $B$K$J$k!#(B
|
|
77
|
|
78 $B$=$l$G(B,
|
|
79
|
|
80 ---------- ($B;29M(B) ----------
|
|
81 abcdefgh\\ abcdefgh\\
|
|
82 $B4A(B ^----(a) 333 ^---- cursor $B$O$3$3$K$/$k!#(B
|
|
83 ^---- (b) cursor $B$O$3$3$K$/$k!#(B ^---- $B<!$O$3$3!#(B
|
|
84 ^---- (c) $B<!$O$3$3!#(B ----------
|
|
85 ---------- multi column character $B$N>l9g!#(B
|
|
86 multi width char. $B$N>l9g!#(B
|
|
87
|
|
88 ----------
|
|
89 abcdefghi\
|
|
90 j ^---- (a)
|
|
91 ^---(b)
|
|
92 ^-----(c)
|
|
93 ----------
|
|
94 $BIaDL$N(B char. $B$N>l9g!#(B
|
|
95
|
|
96 (i) $B$KBP$7$F(B, (3-1) $B$N=hM}$O(B, (c) $B$G9T$r1[$($?$H;W$C$F$$$k$H$3$m(B
|
|
97 $B$r(B, $B$=$NA0$G1[$($F$$$?$H(B (b) $B$K(B (hpos, vpos) $B$rLa$7(B, pos $B$b0l$DLa(B
|
|
98 $B$9=hM}$r$9$k!#(B
|
|
99
|
|
100 (ii) $B$KBP$7$F(B, (3-2) $B$N=hM}$O(B, (a) $B$K(B (hpos, vpos) $B$,$"$k$H;W$C$F(B
|
|
101 $B$$$k$N$r(B (b) $B$K0\$9!#(B
|
|
102
|
|
103 * indent.c (pos_tab_offset):
|
|
104 $BK\2H$N(B pos_tab_offset $B$O!V0l9T$O0lDj$N(B column(s) $B$G$"$k!W(B
|
|
105 $B$3$H$r2>Dj$7(B, current_column $B$G(B column $B$r5a$a$F(B, $B$=$l$G(B
|
|
106 width $B$G(B % $B$H$C$?$j$7$F$$$k!#$^$:$$$N$G(B, $B=q$-D>$7!#(B
|
|
107
|
|
108 * indent.c (vmotion):
|
|
109 pos.vpos * width $B$H$$$&!V0l9T$O0lDj$N(B column(s) $B$G$"$k!W(B
|
|
110 $B$3$H$r2>Dj$7$F$"$kItJ,$r=$@5(B, pos.tab_offset $B$rMQ$$$k!#(B
|
|
111
|
|
112 * xdisp.c (redisplay):
|
|
113
|
|
114 -------- --------
|
|
115 $B$3$s$J(Ba\ DEL $B$3$s$J(B\\
|
|
116 $B>l9g(B ==> $B>l9g(B
|
|
117 ^^ ^^
|
|
118 -------- --------
|
|
119
|
|
120 $B$r=hM}$9$k$h$&$K(B, goto cancel $B$K$J$k>r7o$r$D$1$k!#(B
|
|
121
|
|
122 * xdisp.c (try_window):
|
|
123 tab_offset $B$N=hM}!#(B
|
|
124
|
|
125 * xdisp.c (try_window_id):
|
|
126 emacs $B$N(B bug $B=$@5!#(B
|
|
127 tab_offset $B$N=hM}!#(B
|
|
128
|
|
129 * xdisp.c (display_text_line):
|
|
130 tab_offset $B$N=hM}!#(B
|
|
131 $B9TKv$N(B truncate, multi width char. $B$N>l9g(B, $$ $B$N=hM}!#(B
|
|
132 emacs $B$N(B bug $B=$@5!#(B
|
|
133
|