mirror of
https://github.com/rfivet/uemacs.git
synced 2024-12-21 08:36:23 -05:00
Compare commits
3 Commits
4b45ca231e
...
1cdc889f6f
Author | SHA1 | Date | |
---|---|---|---|
1cdc889f6f | |||
c55a72ad26 | |||
3551d2b8d1 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,2 +1,4 @@
|
|||||||
em
|
depend.mak
|
||||||
|
ue
|
||||||
*.o
|
*.o
|
||||||
|
*.exe
|
||||||
|
42
Makefile
42
Makefile
@ -1,5 +1,5 @@
|
|||||||
# Makefile -- uEMACS
|
# Makefile -- µEMACS
|
||||||
# Copyright (c) 2014-2021 Renaud Fivet
|
# Copyright © 2013-2021 Renaud Fivet
|
||||||
|
|
||||||
# Make the build silent by default
|
# Make the build silent by default
|
||||||
V =
|
V =
|
||||||
@ -25,7 +25,7 @@ WARNINGS=-pedantic -Wall -Wextra -Wstrict-prototypes -Wno-unused-parameter
|
|||||||
CFLAGS=-O2 $(WARNINGS)
|
CFLAGS=-O2 $(WARNINGS)
|
||||||
LDFLAGS=-s
|
LDFLAGS=-s
|
||||||
LIBS=-lcurses
|
LIBS=-lcurses
|
||||||
DEFINES=-DAUTOCONF -DPROGRAM=$(PROGRAM)
|
DEFINES=-DAUTOCONF -DPROGRAM=$(PROGRAM) # -DNDEBUG
|
||||||
ifeq ($(uname_S),Linux)
|
ifeq ($(uname_S),Linux)
|
||||||
DEFINES += -DPOSIX -DUSG
|
DEFINES += -DPOSIX -DUSG
|
||||||
else ifeq ($(uname_S),CYGWIN)
|
else ifeq ($(uname_S),CYGWIN)
|
||||||
@ -38,18 +38,6 @@ else
|
|||||||
$(error $(uname_S) needs configuration)
|
$(error $(uname_S) needs configuration)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#ifeq ($(uname_S),FreeBSD)
|
|
||||||
# DEFINES=-DAUTOCONF -DPOSIX -DSYSV -D_FREEBSD_C_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE=600
|
|
||||||
#endif
|
|
||||||
#ifeq ($(uname_S),Darwin)
|
|
||||||
# DEFINES=-DAUTOCONF -DPOSIX -DSYSV -D_DARWIN_C_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_XOPEN_SOURCE=600
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#LIBS=-ltermcap # BSD
|
|
||||||
#LIBS=-lcurses # SYSV
|
|
||||||
#LIBS=-ltermlib
|
|
||||||
#LIBS=-L/usr/lib/termcap -ltermcap
|
|
||||||
LFLAGS=-hbx
|
|
||||||
BINDIR=/usr/bin
|
BINDIR=/usr/bin
|
||||||
LIBDIR=/usr/lib
|
LIBDIR=/usr/lib
|
||||||
|
|
||||||
@ -60,15 +48,9 @@ $(PROGRAM): $(OBJS)
|
|||||||
$(E) " LINK " $@
|
$(E) " LINK " $@
|
||||||
$(Q) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
$(Q) $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||||
|
|
||||||
SPARSE=sparse
|
|
||||||
SPARSE_FLAGS=-D__LITTLE_ENDIAN__ -D__x86_64__ -D__linux__ -D__unix__
|
|
||||||
|
|
||||||
sparse:
|
|
||||||
$(SPARSE) $(SPARSE_FLAGS) $(DEFINES) $(SRCS)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(E) " CLEAN"
|
$(E) " CLEAN"
|
||||||
$(Q) rm -f $(PROGRAM) core lintout makeout tags *.o
|
$(Q) rm -f $(PROGRAM) depend.mak *.o
|
||||||
|
|
||||||
install: $(PROGRAM)
|
install: $(PROGRAM)
|
||||||
strip $(PROGRAM)
|
strip $(PROGRAM)
|
||||||
@ -78,22 +60,6 @@ install: $(PROGRAM)
|
|||||||
chmod 755 ${BINDIR}/$(PROGRAM)
|
chmod 755 ${BINDIR}/$(PROGRAM)
|
||||||
chmod 644 ${LIBDIR}/emacs.hlp ${LIBDIR}/.emacsrc
|
chmod 644 ${LIBDIR}/emacs.hlp ${LIBDIR}/.emacsrc
|
||||||
|
|
||||||
lint: ${SRC}
|
|
||||||
@rm -f lintout
|
|
||||||
lint ${LFLAGS} ${SRC} >lintout
|
|
||||||
cat lintout
|
|
||||||
|
|
||||||
splint:
|
|
||||||
splint -weak $(DEFINES) $(SRCS) -booltype boolean -booltrue TRUE -boolfalse FALSE +posixlib +matchanyintegral
|
|
||||||
|
|
||||||
errs:
|
|
||||||
@rm -f makeout
|
|
||||||
make $(PROGRAM) >makeout 2>&1
|
|
||||||
|
|
||||||
tags: ${SRC}
|
|
||||||
@rm -f tags
|
|
||||||
ctags ${SRC}
|
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(E) " CC " $@
|
$(E) " CC " $@
|
||||||
$(Q) ${CC} ${CFLAGS} ${DEFINES} -c $*.c
|
$(Q) ${CC} ${CFLAGS} ${DEFINES} -c $*.c
|
||||||
|
18
bind.c
18
bind.c
@ -448,22 +448,19 @@ static const char *getfname( unsigned keycode, const char *failmsg) {
|
|||||||
* String key name TO Command Key
|
* String key name TO Command Key
|
||||||
*
|
*
|
||||||
* char *keyname; name of key to translate to Command key form
|
* char *keyname; name of key to translate to Command key form
|
||||||
* fmt: [M-][^X][^][FN]X
|
* fmt: [M-|^X][^][FN]X
|
||||||
* returns ~0 on invalid sequence
|
* returns ~0 on invalid sequence
|
||||||
*/
|
*/
|
||||||
static unsigned int stock( char *keyname) {
|
static unsigned int stock( char *keyname) {
|
||||||
/* parse it up */
|
/* parse it up */
|
||||||
unsigned c = 0 ;
|
unsigned c = 0 ;
|
||||||
|
|
||||||
/* first, the META prefix */
|
/* first, the prefix META or ^X */
|
||||||
if( *keyname == 'M' && keyname[ 1] == '-') {
|
if( *keyname == 'M' && keyname[ 1] == '-') {
|
||||||
c = META ;
|
c = META ;
|
||||||
keyname += 2 ;
|
keyname += 2 ;
|
||||||
}
|
} else if( *keyname == '^' && keyname[ 1] == 'X') {
|
||||||
|
c = CTLX ;
|
||||||
/* control-x prefix */
|
|
||||||
if( *keyname == '^' && keyname[ 1] == 'X') {
|
|
||||||
c |= CTLX ;
|
|
||||||
keyname += 2 ;
|
keyname += 2 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,10 +484,9 @@ static unsigned int stock( char *keyname) {
|
|||||||
if( *keyname < 32 || *keyname == 0x7F) {
|
if( *keyname < 32 || *keyname == 0x7F) {
|
||||||
c |= CTRL ;
|
c |= CTRL ;
|
||||||
*keyname ^= 0x40 ;
|
*keyname ^= 0x40 ;
|
||||||
}
|
} else if( c && !(c & SPEC)
|
||||||
|
&& *keyname >= 'a' && *keyname <= 'z')
|
||||||
/* make sure we are not lower case (not with function keys) */
|
/* make sure we are not lower case (not with function keys) */
|
||||||
if( *keyname >= 'a' && *keyname <= 'z' && !(c & SPEC))
|
|
||||||
*keyname -= 32 ;
|
*keyname -= 32 ;
|
||||||
|
|
||||||
/* the final sequence... */
|
/* the final sequence... */
|
||||||
|
36
input.c
36
input.c
@ -371,11 +371,10 @@ int get1key( void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* GETCMD: Get a command from the keyboard. Process all applicable prefix
|
/* GETCMD: Get a command from the keyboard. Process all applicable prefix
|
||||||
keys. Handle alted and controlled FNx, not shifted. Allow double
|
keys. Handle alted and controlled FNx, not shifted.
|
||||||
prefix M-^X.
|
|
||||||
*/
|
*/
|
||||||
int getcmd( void) {
|
int getcmd( void) {
|
||||||
int cmask = 0 ; /* prefixes M- & ^X */
|
int prefix = 0 ; /* prefixes M- or ^X */
|
||||||
int keyread[ STACKSIZE] ; /* room to process sequences like ^[[24;2~ */
|
int keyread[ STACKSIZE] ; /* room to process sequences like ^[[24;2~ */
|
||||||
int *kptr = keyread ;
|
int *kptr = keyread ;
|
||||||
int c ;
|
int c ;
|
||||||
@ -390,7 +389,7 @@ int getcmd( void) {
|
|||||||
if( c == 'O') { /* F1 .. F4 */
|
if( c == 'O') { /* F1 .. F4 */
|
||||||
c = *(kptr++) = get1key() ;
|
c = *(kptr++) = get1key() ;
|
||||||
if( c >= 'P' && c <= 'S')
|
if( c >= 'P' && c <= 'S')
|
||||||
return c | SPEC | cmask ;
|
return c | SPEC | prefix ;
|
||||||
} else if( c == '[') {
|
} else if( c == '[') {
|
||||||
int v1, v ; /* ^[[v1;v~ or ^[[v~ */
|
int v1, v ; /* ^[[v1;v~ or ^[[v~ */
|
||||||
|
|
||||||
@ -398,14 +397,17 @@ int getcmd( void) {
|
|||||||
v1 = v = 0 ;
|
v1 = v = 0 ;
|
||||||
while( kptr < &keyread[ STACKSIZE]) {
|
while( kptr < &keyread[ STACKSIZE]) {
|
||||||
c = *(kptr++) = get1key() ;
|
c = *(kptr++) = get1key() ;
|
||||||
if( (c == '~') || (c >= 'A' && c <= 'Z')) {
|
if( (c == '~')
|
||||||
|
|| (c >= 'A' && c <= 'Z')
|
||||||
|
|| (c >= 'a' && c <= 'z')) {
|
||||||
/* Found end of sequence */
|
/* Found end of sequence */
|
||||||
|
int mask = prefix ;
|
||||||
if( v1) { /* Handle ALT/CTL, not SHFT */
|
if( v1) { /* Handle ALT/CTL, not SHFT */
|
||||||
if( (v - 1) & 4)
|
|
||||||
cmask |= CTRL ;
|
|
||||||
|
|
||||||
if( (v - 1) & 2)
|
if( (v - 1) & 2)
|
||||||
cmask |= META ;
|
mask = META ;
|
||||||
|
|
||||||
|
if( (v - 1) & 4)
|
||||||
|
mask |= CTRL ;
|
||||||
|
|
||||||
v = v1 ;
|
v = v1 ;
|
||||||
}
|
}
|
||||||
@ -417,7 +419,7 @@ int getcmd( void) {
|
|||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
|
|
||||||
return c | SPEC | cmask ;
|
return c | SPEC | mask ;
|
||||||
} else if( c == ';') { /* Start of SHFT/ALT/CTL state */
|
} else if( c == ';') { /* Start of SHFT/ALT/CTL state */
|
||||||
v1 = v ;
|
v1 = v ;
|
||||||
v = 0 ;
|
v = 0 ;
|
||||||
@ -433,20 +435,24 @@ int getcmd( void) {
|
|||||||
KPUSH( *(--kptr)) ;
|
KPUSH( *(--kptr)) ;
|
||||||
|
|
||||||
c = get1key() ;
|
c = get1key() ;
|
||||||
}
|
} else
|
||||||
|
kptr-- ;
|
||||||
|
|
||||||
if( c == metac) {
|
if( c == metac) {
|
||||||
cmask |= META ;
|
prefix = META ;
|
||||||
} else if( c == ctlxc) {
|
} else if( c == ctlxc) {
|
||||||
cmask |= CTLX ;
|
if( prefix)
|
||||||
|
break ; /* ^X^X or M-^X */
|
||||||
|
else
|
||||||
|
prefix = CTLX ;
|
||||||
} else
|
} else
|
||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( cmask && islower( c))
|
if( prefix && islower( c))
|
||||||
c = flipcase( c) ;
|
c = flipcase( c) ;
|
||||||
|
|
||||||
return c | cmask ;
|
return c | prefix ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* A more generalized prompt/reply function allowing the caller
|
/* A more generalized prompt/reply function allowing the caller
|
||||||
|
4
maze.cmd
4
maze.cmd
@ -9,6 +9,8 @@ set %D3 0
|
|||||||
set %D4 -1
|
set %D4 -1
|
||||||
set %D5 0
|
set %D5 0
|
||||||
|
|
||||||
|
select-buffer maze
|
||||||
|
|
||||||
# draw the maze layout
|
# draw the maze layout
|
||||||
$curwidth insert-string " "
|
$curwidth insert-string " "
|
||||||
newline
|
newline
|
||||||
@ -98,3 +100,5 @@ write-message $line
|
|||||||
set $curline 3
|
set $curline 3
|
||||||
set $curcol 1
|
set $curcol 1
|
||||||
set $curchar 32
|
set $curchar 32
|
||||||
|
|
||||||
|
unmark-buffer
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# Visualize Screen Dimensions
|
# Visualize Screen Dimensions
|
||||||
|
select-buffer screensize
|
||||||
insert-string &cat $curwidth &cat "x" $pagelen
|
insert-string &cat $curwidth &cat "x" $pagelen
|
||||||
insert-string &rig "---------+" &sub 10 $curcol
|
insert-string &rig "---------+" &sub 10 $curcol
|
||||||
&sub &div $curwidth 10 1 insert-string "---------+"
|
&sub &div $curwidth 10 1 insert-string "---------+"
|
||||||
|
Loading…
Reference in New Issue
Block a user