home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
264b.lha
/
Uemacs_v3.10
/
sentence.cmd
< prev
next >
Wrap
OS/2 REXX Batch file
|
1989-07-02
|
2KB
|
114 lines
;; macro 29 next sentence -- defn: go to beginning of word following either a
;; "." or \n\n
29 store-macro
add-mode "magic"
set %ccol $curcol
set %cline $curline
!force search-forward "\."
!if $status
set %pcol $curcol
set %pline $curline
!else
set %pcol 0
end-of-file
set %pline $curline
!endif
set $curline %cline
set $curcol %ccol
!force search-forward "~n *~n"
!if $status
set %ncol $curcol
set %nline $curline
!else
set %ncol 0
end-of-file
set %nline $curline
!endif
set $curline %cline
set $curcol %ccol
delete-mode "magic"
!if &less %pline %nline
;; period before newlines
set $curline %pline
set $curcol %pcol
next-word
!else
!if &and &equal %nline %pline &less %pcol %ncol
;; here is both on same line and new line after. so .
set $curline %pline
set $curcol %pcol
next-word
!else
set $curline %nline
set $curcol %ncol
!endif
!endif
!endm
;; macro 28 previous sentence -- defn: go to beginning of word following either a
;; "." or \n\n after a reverse search
28 store-macro
set %scol $curcol
set %sline $curline
*rep28
set %ccol $curcol
set %cline $curline
add-mode "magic"
!force search-reverse "\."
!if $status
set %pcol $curcol
set %pline $curline
!else
set %pcol 0
set %pline 1
!endif
set $curline %cline
set $curcol %ccol
!force search-reverse "~n *~n"
!if $status
set %ncol $curcol
set %nline $curline
!else
set %ncol 0
set %nline 1
!endif
delete-mode "magic"
!if &less %nline %pline
;; period after newlines so .
set $curline %pline
set $curcol %pcol
next-word
!else
!if &and &equal %nline %pline &less %ncol %pcol
;; here both on same line and new line before ncol. so period.
set $curline %pline
set $curcol %pcol
next-word
!else
;; use newlines
set $curline %nline
set $curcol %ncol
!if &and &equal $curcol 0 &equal $curline 1
!return
!else
2 forward-character
!endif
!endif
!endif
;; now see if the current position is at or to the right of the starting
;; position. if yes, then return
!if &less $curline %sline
!return
!else
!if &less $curcol %scol
!return
!endif
!endif
previous-word
!goto rep28
!endm
bind-to-key execute-macro-29 M-FNF
bind-to-key execute-macro-28 M-FNB