/[emacs]/emacs/src/cm.c
ViewVC logotype

Diff of /emacs/src/cm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by gerd, Tue Nov 21 12:04:03 2000 UTC revision 1.15.18.1 by miles, Fri Apr 4 06:20:57 2003 UTC
# Line 188  cmcostinit () Line 188  cmcostinit ()
188    
189  static int  static int
190  calccost (srcy, srcx, dsty, dstx, doit)  calccost (srcy, srcx, dsty, dstx, doit)
191         int srcy, srcx, dsty, dstx, doit;
192  {  {
193      register int    deltay,      register int    deltay,
194                      deltax,                      deltax,
# Line 223  calccost (srcy, srcx, dsty, dstx, doit) Line 224  calccost (srcy, srcx, dsty, dstx, doit)
224      if (doit)      if (doit)
225          while (--deltay >= 0)          while (--deltay >= 0)
226              tputs (p, 1, cmputc);              tputs (p, 1, cmputc);
227  x:  x:
228      if ((deltax = dstx - srcx) == 0)      if ((deltax = dstx - srcx) == 0)
229          goto done;          goto done;
230      if (deltax < 0) {      if (deltax < 0) {
# Line 234  x: Line 235  x:
235      if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs)      if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs)
236          goto olddelta;          /* forget it! */          goto olddelta;          /* forget it! */
237    
238      /*      /*
239       * ntabs is # tabs towards but not past dstx; n2tabs is one more       * ntabs is # tabs towards but not past dstx; n2tabs is one more
240       * (ie past dstx), but this is only valid if that is not past the       * (ie past dstx), but this is only valid if that is not past the
241       * right edge of the screen.  We can check that at the same time       * right edge of the screen.  We can check that at the same time
# Line 250  x: Line 251  x:
251      if (tab2x >= Wcm.cm_cols)   /* too far (past edge) */      if (tab2x >= Wcm.cm_cols)   /* too far (past edge) */
252          n2tabs = 0;          n2tabs = 0;
253    
254      /*      /*
255       * Now set tabcost to the cost for using ntabs, and c to the cost       * Now set tabcost to the cost for using ntabs, and c to the cost
256       * for using n2tabs, then pick the minimum.       * for using n2tabs, then pick the minimum.
257       */       */
# Line 269  x: Line 270  x:
270      if (tabcost >= BIG)         /* caint use tabs */      if (tabcost >= BIG)         /* caint use tabs */
271          goto newdelta;          goto newdelta;
272    
273      /*      /*
274       * See if tabcost is less than just moving right       * See if tabcost is less than just moving right
275       */       */
276    
# Line 281  x: Line 282  x:
282          srcx = tabx;          srcx = tabx;
283      }      }
284    
285      /*      /*
286       * Now might as well just recompute the delta.       * Now might as well just recompute the delta.
287       */       */
288    
289  newdelta:  newdelta:
290      if ((deltax = dstx - srcx) == 0)      if ((deltax = dstx - srcx) == 0)
291          goto done;          goto done;
292  olddelta:  olddelta:
293      if (deltax > 0)      if (deltax > 0)
294          p = Wcm.cm_right, c = Wcm.cc_right;          p = Wcm.cm_right, c = Wcm.cc_right;
295      else      else
296          p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax;          p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax;
297    
298  dodelta:  dodelta:
299      if (c == BIG) {             /* caint get thar from here */      if (c == BIG) {             /* caint get thar from here */
300  fail:  fail:
301          if (doit)          if (doit)
# Line 305  fail: Line 306  fail:
306      if (doit)      if (doit)
307          while (--deltax >= 0)          while (--deltax >= 0)
308              tputs (p, 1, cmputc);              tputs (p, 1, cmputc);
309  done:  done:
310      return totalcost;      return totalcost;
311  }  }
312    
# Line 323  losecursor () Line 324  losecursor ()
324    
325  void  void
326  cmgoto (row, col)  cmgoto (row, col)
327         int row, col;
328  {  {
329      int     homecost,      int     homecost,
330              crcost,              crcost,
# Line 377  cmgoto (row, col) Line 379  cmgoto (row, col)
379        dcm = Wcm.cm_abs;        dcm = Wcm.cm_abs;
380      }      }
381    
382    /*    /*
383     * In the following comparison, the = in <= is because when the costs     * In the following comparison, the = in <= is because when the costs
384     * are the same, it looks nicer (I think) to move directly there.     * are the same, it looks nicer (I think) to move directly there.
385     */     */
# Line 398  cmgoto (row, col) Line 400  cmgoto (row, col)
400    
401    switch (use)    switch (use)
402      {      {
403      case USEHOME:      case USEHOME:
404        tputs (Wcm.cm_home, 1, cmputc);        tputs (Wcm.cm_home, 1, cmputc);
405        curY = 0, curX = 0;        curY = 0, curX = 0;
406        break;        break;
407    
408      case USELL:      case USELL:
409        tputs (Wcm.cm_ll, 1, cmputc);        tputs (Wcm.cm_ll, 1, cmputc);
410        curY = Wcm.cm_rows - 1, curX = 0;        curY = Wcm.cm_rows - 1, curX = 0;
411        break;        break;
412    
413      case USECR:      case USECR:
414        tputs (Wcm.cm_cr, 1, cmputc);        tputs (Wcm.cm_cr, 1, cmputc);
415        if (Wcm.cm_autolf)        if (Wcm.cm_autolf)
416          curY++;          curY++;

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.15.18.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26