]> code.delx.au - gnu-emacs/blobdiff - src/cm.c
Version 3.15
[gnu-emacs] / src / cm.c
index 8ab302a601248edd3e7c909018a3dd9709abc3d5..354097b39e4584d11bd583232ddfe10417dc64f7 100644 (file)
--- a/src/cm.c
+++ b/src/cm.c
@@ -1,5 +1,6 @@
 /* Cursor motion subroutines for GNU Emacs.
 /* Cursor motion subroutines for GNU Emacs.
-   Copyright (C) 1985, 1995 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1995, 2002, 2003, 2004,
+                 2005 Free Software Foundation, Inc.
     based primarily on public domain code written by Chris Torek
 
 This file is part of GNU Emacs.
     based primarily on public domain code written by Chris Torek
 
 This file is part of GNU Emacs.
@@ -16,8 +17,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 
 #include <config.h>
 
 
 #include <config.h>
@@ -25,15 +26,20 @@ Boston, MA 02111-1307, USA.  */
 #include "cm.h"
 #include "termhooks.h"
 
 #include "cm.h"
 #include "termhooks.h"
 
-#ifdef HAVE_TERMCAP_H
+/* For now, don't try to include termcap.h.  On some systems,
+   configure finds a non-standard termcap.h that the main build
+   won't find.  */
+
+#if defined HAVE_TERMCAP_H && 0
 #include <termcap.h>
 #include <termcap.h>
+#else
+extern void tputs P_ ((const char *, int, int (*)(int)));
+extern char *tgoto P_ ((const char *, int, int));
 #endif
 
 #define        BIG     9999            /* 9999 good on VAXen.  For 16 bit machines
                                   use about 2000.... */
 
 #endif
 
 #define        BIG     9999            /* 9999 good on VAXen.  For 16 bit machines
                                   use about 2000.... */
 
-char *tgoto ();
-
 extern char *BC, *UP;
 
 int cost;              /* sums up costs */
 extern char *BC, *UP;
 
 int cost;              /* sums up costs */
@@ -183,6 +189,7 @@ cmcostinit ()
 
 static int
 calccost (srcy, srcx, dsty, dstx, doit)
 
 static int
 calccost (srcy, srcx, dsty, dstx, doit)
+     int srcy, srcx, dsty, dstx, doit;
 {
     register int    deltay,
                     deltax,
 {
     register int    deltay,
                     deltax,
@@ -218,7 +225,7 @@ calccost (srcy, srcx, dsty, dstx, doit)
     if (doit)
        while (--deltay >= 0)
            tputs (p, 1, cmputc);
     if (doit)
        while (--deltay >= 0)
            tputs (p, 1, cmputc);
-x: 
+x:
     if ((deltax = dstx - srcx) == 0)
        goto done;
     if (deltax < 0) {
     if ((deltax = dstx - srcx) == 0)
        goto done;
     if (deltax < 0) {
@@ -229,7 +236,7 @@ x:
     if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs)
        goto olddelta;          /* forget it! */
 
     if (Wcm.cc_tab >= BIG || !Wcm.cm_usetabs)
        goto olddelta;          /* forget it! */
 
-    /* 
+    /*
      * ntabs is # tabs towards but not past dstx; n2tabs is one more
      * (ie past dstx), but this is only valid if that is not past the
      * right edge of the screen.  We can check that at the same time
      * ntabs is # tabs towards but not past dstx; n2tabs is one more
      * (ie past dstx), but this is only valid if that is not past the
      * right edge of the screen.  We can check that at the same time
@@ -245,7 +252,7 @@ x:
     if (tab2x >= Wcm.cm_cols)  /* too far (past edge) */
        n2tabs = 0;
 
     if (tab2x >= Wcm.cm_cols)  /* too far (past edge) */
        n2tabs = 0;
 
-    /* 
+    /*
      * Now set tabcost to the cost for using ntabs, and c to the cost
      * for using n2tabs, then pick the minimum.
      */
      * Now set tabcost to the cost for using ntabs, and c to the cost
      * for using n2tabs, then pick the minimum.
      */
@@ -264,7 +271,7 @@ x:
     if (tabcost >= BIG)                /* caint use tabs */
        goto newdelta;
 
     if (tabcost >= BIG)                /* caint use tabs */
        goto newdelta;
 
-    /* 
+    /*
      * See if tabcost is less than just moving right
      */
 
      * See if tabcost is less than just moving right
      */
 
@@ -276,20 +283,20 @@ x:
        srcx = tabx;
     }
 
        srcx = tabx;
     }
 
-    /* 
+    /*
      * Now might as well just recompute the delta.
      */
 
      * Now might as well just recompute the delta.
      */
 
-newdelta: 
+newdelta:
     if ((deltax = dstx - srcx) == 0)
        goto done;
     if ((deltax = dstx - srcx) == 0)
        goto done;
-olddelta: 
+olddelta:
     if (deltax > 0)
        p = Wcm.cm_right, c = Wcm.cc_right;
     else
        p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax;
 
     if (deltax > 0)
        p = Wcm.cm_right, c = Wcm.cc_right;
     else
        p = Wcm.cm_left, c = Wcm.cc_left, deltax = -deltax;
 
-dodelta: 
+dodelta:
     if (c == BIG) {            /* caint get thar from here */
 fail:
        if (doit)
     if (c == BIG) {            /* caint get thar from here */
 fail:
        if (doit)
@@ -300,7 +307,7 @@ fail:
     if (doit)
        while (--deltax >= 0)
            tputs (p, 1, cmputc);
     if (doit)
        while (--deltax >= 0)
            tputs (p, 1, cmputc);
-done: 
+done:
     return totalcost;
 }
 
     return totalcost;
 }
 
@@ -318,6 +325,7 @@ losecursor ()
 
 void
 cmgoto (row, col)
 
 void
 cmgoto (row, col)
+     int row, col;
 {
     int     homecost,
             crcost,
 {
     int     homecost,
             crcost,
@@ -372,7 +380,7 @@ cmgoto (row, col)
       dcm = Wcm.cm_abs;
     }
 
       dcm = Wcm.cm_abs;
     }
 
-  /* 
+  /*
    * In the following comparison, the = in <= is because when the costs
    * are the same, it looks nicer (I think) to move directly there.
    */
    * In the following comparison, the = in <= is because when the costs
    * are the same, it looks nicer (I think) to move directly there.
    */
@@ -393,17 +401,17 @@ cmgoto (row, col)
 
   switch (use)
     {
 
   switch (use)
     {
-    case USEHOME: 
+    case USEHOME:
       tputs (Wcm.cm_home, 1, cmputc);
       curY = 0, curX = 0;
       break;
 
       tputs (Wcm.cm_home, 1, cmputc);
       curY = 0, curX = 0;
       break;
 
-    case USELL: 
+    case USELL:
       tputs (Wcm.cm_ll, 1, cmputc);
       curY = Wcm.cm_rows - 1, curX = 0;
       break;
 
       tputs (Wcm.cm_ll, 1, cmputc);
       curY = Wcm.cm_rows - 1, curX = 0;
       break;
 
-    case USECR: 
+    case USECR:
       tputs (Wcm.cm_cr, 1, cmputc);
       if (Wcm.cm_autolf)
        curY++;
       tputs (Wcm.cm_cr, 1, cmputc);
       if (Wcm.cm_autolf)
        curY++;
@@ -453,3 +461,6 @@ Wcm_init ()
     return - 2;
   return 0;
 }
     return - 2;
   return 0;
 }
+
+/* arch-tag: bcf64c02-00f6-44ef-94b6-c56eab5b3dc4
+   (do not change this comment) */