home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 June
/
SIMTEL_0692.cdr
/
msdos
/
eel
/
narrow.e
< prev
next >
Wrap
Text File
|
1988-09-30
|
4KB
|
113 lines
/********** Documentation to be inserted in file "edoc" ***********
narrow-bounds-to-region Narrow portion of buffer to edit to region.
Make region the only portion of the buffer that your commands
affect. Return to editting of the entire buffer with widen-bounds.
widen-bounds Widen bounds to entire buffer.
Use this command when you have finished editting a portion of the
buffer selected previously with narrow-bounds-to-region.
*********** End of documentation **********/
/* ----- Gary R. Smith (smith#gary@b.mfenet@nmfecc.arpa) */
/****************** Beginning of file "narrow.e" ******************/
/* EEL commands to customize Epsilon 3.05 written by Gary R. Smith,
Aug. 9, 1986. */
#include "eel.h"
buffer int narrow_mode = 0; /* Are we in narrow mode? */
char *bef_reg;
char *aft_reg;
/*****************************************************************************
* *
* Save parts of buffer before and after region in temporary buffers, *
* and leave only region in the current buffer. *
* *
*****************************************************************************/
command narrow_bounds_to_region() on cx_tab['n']
{
int mod = modified;
int beg_reg = point;
int end_reg = mark;
if (narrow_mode) error("Already in Narrow mode");
if (point > mark) { /* beginning and end of region */
beg_reg = mark;
end_reg = point;
}
aft_reg = temp_buf();
xfer(aft_reg, end_reg, size()); /* save part after region */
delete(end_reg, size());
bef_reg = temp_buf();
xfer(bef_reg, 0, beg_reg); /* save part before region */
delete(0, beg_reg);
modified = mod;
narrow_mode = 1; /* now in Narrow mode */
make_mode();
}
/*****************************************************************************
* *
* Restore parts of buffer saved by narrow_bounds_to_region. *
* Keep point, mark, and window_start in same places. *
* *
*****************************************************************************/
command widen_bounds() on cx_tab['w']
{
int mod = modified;
char *current_buffer;
int oldstart = window_start; /* save start of window */
int oldpos = point; /* and point and mark */
int oldmark = mark;
int size_bef;
if (!narrow_mode) error("Cannot widen when not in Narrow mode");
point = 0; /* insert at beginning of current buffer */
current_buffer = bufname;
bufname = bef_reg; /* from 'before-region' temp buf */
xfer(current_buffer, 0, size());
size_bef = size();
bufname = current_buffer;
point = size(); /* insert at end of current buffer */
bufname = aft_reg; /* from 'after-region' temp buf */
xfer(current_buffer, 0, size());
bufname = current_buffer;
mark = oldmark + size_bef; /* restore point and mark */
point = oldpos + size_bef;
window_start = oldstart + size_bef; /* same start of window */
modified = mod;
narrow_mode = 0; /* no longer in Narrow mode */
make_mode();
}
/* make_mode() from disp.e is enhanced here to show Narrow mode */
make_mode()
{
strcpy(mode, major_mode);
if (fill_mode)
strcat(mode, " Fill");
if (over_mode)
strcat(mode, " Over");
if (!strip_returns)
strcat(mode, " NoTrans");
if (narrow_mode)
strcat(mode, " Narrow");
}
/****************** End of file "narrow.e" ******************/