Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/mpatch.c @ 82:7ed96baa7caa
Gotos are embarrassing.
author | mpm@selenic.com |
---|---|
date | Tue, 17 May 2005 10:13:00 -0800 |
parents | 4a6ab4d80dc4 |
children | d6afb6dbf9f2 |
comparison
equal
deleted
inserted
replaced
81:17884f79d59d | 82:7ed96baa7caa |
---|---|
65 struct frag *d = dest->tail, *s = src->head; | 65 struct frag *d = dest->tail, *s = src->head; |
66 int postend, c, l; | 66 int postend, c, l; |
67 | 67 |
68 while (s != src->tail) { | 68 while (s != src->tail) { |
69 if (s->start + offset >= cut) | 69 if (s->start + offset >= cut) |
70 goto exit; /* we've gone far enough */ | 70 break; /* we've gone far enough */ |
71 | 71 |
72 postend = offset + s->start + s->len; | 72 postend = offset + s->start + s->len; |
73 if (postend <= cut) { | 73 if (postend <= cut) { |
74 /* save this hunk */ | 74 /* save this hunk */ |
75 offset += s->start + s->len - s->end; | 75 offset += s->start + s->len - s->end; |
93 d++; | 93 d++; |
94 s->start = c; | 94 s->start = c; |
95 s->len = s->len - l; | 95 s->len = s->len - l; |
96 s->data = s->data + l; | 96 s->data = s->data + l; |
97 | 97 |
98 goto exit; | 98 break; |
99 } | 99 } |
100 } | 100 } |
101 | 101 |
102 exit: | |
103 dest->tail = d; | 102 dest->tail = d; |
104 src->head = s; | 103 src->head = s; |
105 return offset; | 104 return offset; |
106 } | 105 } |
107 | 106 |
111 struct frag *s = src->head; | 110 struct frag *s = src->head; |
112 int postend, c, l; | 111 int postend, c, l; |
113 | 112 |
114 while (s != src->tail) { | 113 while (s != src->tail) { |
115 if (s->start + offset >= cut) | 114 if (s->start + offset >= cut) |
116 goto exit; | 115 break; |
117 | 116 |
118 postend = offset + s->start + s->len; | 117 postend = offset + s->start + s->len; |
119 if (postend <= cut) { | 118 if (postend <= cut) { |
120 offset += s->start + s->len - s->end; | 119 offset += s->start + s->len - s->end; |
121 s++; | 120 s++; |
131 offset += s->start + l - c; | 130 offset += s->start + l - c; |
132 s->start = c; | 131 s->start = c; |
133 s->len = s->len - l; | 132 s->len = s->len - l; |
134 s->data = s->data + l; | 133 s->data = s->data + l; |
135 | 134 |
136 goto exit; | 135 break; |
137 } | 136 } |
138 } | 137 } |
139 | 138 |
140 exit: | |
141 src->head = s; | 139 src->head = s; |
142 return offset; | 140 return offset; |
143 } | 141 } |
144 | 142 |
145 /* combine hunk lists a and b, while adjusting b for offset changes in a/ | 143 /* combine hunk lists a and b, while adjusting b for offset changes in a/ |