Parameterized the dot movement keys, making them configurable at compile-time. - sam - An updated version of the sam text editor.
 (HTM) git clone git://vernunftzentrum.de/sam.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 671af52f913d608f39b9c91c9dc2545fd5d6467d
 (DIR) parent f8183e171e2e3023251bf5346193b2abbee889bc
 (HTM) Author: Rob King <jking@deadpixi.com>
       Date:   Tue,  4 Aug 2015 22:45:53 -0500
       
       Parameterized the dot movement keys, making them configurable at
       compile-time.
       
       Diffstat:
         config.mk                           |       9 +++++++++
         samterm/Makefile                    |       2 +-
         samterm/main.c                      |      28 ++++++++++++++++++++++------
       
       3 files changed, 32 insertions(+), 7 deletions(-)
       ---
 (DIR) diff --git a/config.mk b/config.mk
       @@ -21,3 +21,11 @@ FREETYPEINC=/usr/include/freetype2
        
        # TMPDIR should be set to a directory for temporary files with lots of room
        TMPDIR=/tmp
       +
       +# If you want to have keyboard control of dot's position, set the following
       +# variables to the appropriate ASCII control codes. The default values
       +# emulate the WordStar diamond. Setting any command to zero disables it.
       +LINEUP=0x05
       +LINEDOWN=0x18
       +CHARLEFT=0x13
       +CHARRIGHT=0x04
       +\ No newline at end of file
 (DIR) diff --git a/samterm/Makefile b/samterm/Makefile
       @@ -28,7 +28,7 @@ SAMTERM=$(BINDIR)/samterm
        #        or if you need extra libraries to load with X11 applications
        XLIBS=-lXt -lX11 -lXft
        
       -CFLAGS=$(OS) $(INCS) -D_LIBXG_EXTENSION
       +CFLAGS=$(OS) $(INCS) -D_LIBXG_EXTENSION -DLINEUP=$(LINEUP) -DLINEDOWN=$(LINEDOWN) -DCHARLEFT=$(CHARLEFT) -DCHARRIGHT=$(CHARRIGHT)
        
        LIBS=../libframe/libframe.a ../libXg/libXg.a
        CC=cc
 (DIR) diff --git a/samterm/main.c b/samterm/main.c
       @@ -24,6 +24,22 @@ char        hasunlocked = 0;
        int        chord = 0;
        char *machine = "localhost";
        
       +#ifndef LINEUP
       +#define LINEUP 0x00
       +#endif
       +
       +#ifndef LINEDOWN
       +#define LINEDOWN 0x00
       +#endif
       +
       +#ifndef CHARLEFT
       +#define CHARLEFT 0x00
       +#endif
       +
       +#ifndef CHARRIGHT
       +#define CHARRIGHT 0x00
       +#endif
       +
        void
        main(int argc, char *argv[])
        {
       @@ -468,7 +484,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                int pc = qpeekc();
                        scrollkey = pc==SCROLLKEY;        /* ICK */
                        upkey = pc == UPKEY;
       -        movekey = (pc == 0x13 || pc == 0x04 || pc == 0x05 || pc == 0x18);
       +        movekey = (pc == CHARLEFT || pc == CHARRIGHT || pc == LINEUP || pc == LINEDOWN);
                }
        
                if(lock || t->lock){
       @@ -489,7 +505,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                                        break;
        
                                /* ctrl-s, ctrl-e, ctrl-d, ctrl-x */
       -                        if (c==0x13 || c==0x04 || c==0x05 || c==0x18){
       +                        if (c==CHARLEFT || c==CHARRIGHT || c==LINEUP || c==LINEDOWN){
                                        moving = 1;
                                        break;
                                }
       @@ -529,7 +545,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                        /* backspacing immediately after outcmd(): sorry */
                } else if (moving){
                        switch(c){
       -                case 0x13: /* ctrl-s */
       +                case CHARLEFT: /* ctrl-s */
                                    flsetselect(l, a, a);
                                    flushtyping(0);
                                    if (a > 0)
       @@ -538,7 +554,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                                    center(l, a);
                                break;
        
       -                    case 0x04: /* ctrl-d */
       +                    case CHARRIGHT: /* ctrl-d */
                                    flsetselect(l, a, a);
                                flushtyping(0);
                                if (a < t->rasp.nrunes)
       @@ -547,7 +563,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                                center(l, a);
                                break;
            
       -                    case 0x05: /* ctrl-e */
       +                    case LINEUP: /* ctrl-e */
                                    flsetselect(l, a, a);
                                flushtyping(1);
                                if (a > 0){
       @@ -570,7 +586,7 @@ type(Flayer *l, int res)        /* what a bloody mess this is */
                                    }
                                    break;
        
       -                            case 0x18: /* ctrl-x */
       +                            case LINEDOWN: /* ctrl-x */
                                            flsetselect(l, a, a);
                                        flushtyping(1);
                                        if (a < t->rasp.nrunes){