Update ee(1) in the base system to version 1.5.0.
This version is now licensed under a 2-clause BSD license, instead of the Artistic license. I've reverted a lot of local modifications we made to ee, because they have been integrated upstream as well. Only local modifications include: - $FreeBSD$ ID. - Pathname to init.ee. - catopen() call, to honor LC_MESSAGES instead of LANG. To keep SVN happy, I'm putting an application/octet-stream mime type on the KOI8 translations. Reviewed by: current@
This commit is contained in:
commit
6c84dada4f
@ -1,117 +0,0 @@
|
||||
|
||||
|
||||
|
||||
|
||||
The "Artistic License"
|
||||
|
||||
Preamble
|
||||
|
||||
The intent of this document is to state the conditions under which a
|
||||
Package may be copied, such that the Copyright Holder maintains some
|
||||
semblance of artistic control over the development of the package,
|
||||
while giving the users of the package the right to use and distribute
|
||||
the Package in a more-or-less customary fashion, plus the right to make
|
||||
reasonable modifications.
|
||||
|
||||
Definitions:
|
||||
|
||||
"Package" refers to the collection of files distributed by the
|
||||
Copyright Holder, and derivatives of that collection of files
|
||||
created through textual modification.
|
||||
|
||||
"Standard Version" refers to such a Package if it has not been
|
||||
modified, or has been modified in accordance with the wishes
|
||||
of the Copyright Holder.
|
||||
|
||||
"Copyright Holder" is whoever is named in the copyright or
|
||||
copyrights for the package.
|
||||
|
||||
"You" is you, if you're thinking about copying or distributing
|
||||
this Package.
|
||||
|
||||
"Reasonable copying fee" is whatever you can justify on the
|
||||
basis of media cost, duplication charges, time of people involved,
|
||||
and so on. (You will not be required to justify it to the
|
||||
Copyright Holder, but only to the computing community at large
|
||||
as a market that must bear the fee.)
|
||||
|
||||
"Freely Available" means that no fee is charged for the item
|
||||
itself, though there may be fees involved in handling the item.
|
||||
It also means that recipients of the item may redistribute it
|
||||
under the same conditions they received it.
|
||||
|
||||
1. You may make and give away verbatim copies of the source form of the
|
||||
Standard Version of this Package without restriction, provided that you
|
||||
duplicate all of the original copyright notices and associated disclaimers.
|
||||
|
||||
2. You may apply bug fixes, portability fixes and other modifications
|
||||
derived from the Public Domain or from the Copyright Holder. A Package
|
||||
modified in such a way shall still be considered the Standard Version.
|
||||
|
||||
3. You may otherwise modify your copy of this Package in any way, provided
|
||||
that you insert a prominent notice in each changed file stating how and
|
||||
when you changed that file, and provided that you do at least ONE of the
|
||||
following:
|
||||
|
||||
a) place your modifications in the Public Domain or otherwise make them
|
||||
Freely Available, such as by posting said modifications to Usenet or
|
||||
an equivalent medium, or placing the modifications on a major archive
|
||||
site such as uunet.uu.net, or by allowing the Copyright Holder to include
|
||||
your modifications in the Standard Version of the Package.
|
||||
|
||||
b) use the modified Package only within your corporation or organization.
|
||||
|
||||
c) rename any non-standard executables so the names do not conflict
|
||||
with standard executables, which must also be provided, and provide
|
||||
a separate manual page for each non-standard executable that clearly
|
||||
documents how it differs from the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
4. You may distribute the programs of this Package in object code or
|
||||
executable form, provided that you do at least ONE of the following:
|
||||
|
||||
a) distribute a Standard Version of the executables and library files,
|
||||
together with instructions (in the manual page or equivalent) on where
|
||||
to get the Standard Version.
|
||||
|
||||
b) accompany the distribution with the machine-readable source of
|
||||
the Package with your modifications.
|
||||
|
||||
c) accompany any non-standard executables with their corresponding
|
||||
Standard Version executables, giving the non-standard executables
|
||||
non-standard names, and clearly documenting the differences in manual
|
||||
pages (or equivalent), together with instructions on where to get
|
||||
the Standard Version.
|
||||
|
||||
d) make other distribution arrangements with the Copyright Holder.
|
||||
|
||||
5. You may charge a reasonable copying fee for any distribution of this
|
||||
Package. You may charge any fee you choose for support of this Package.
|
||||
You may not charge a fee for this Package itself. However,
|
||||
you may distribute this Package in aggregate with other (possibly
|
||||
commercial) programs as part of a larger (possibly commercial) software
|
||||
distribution provided that you do not advertise this Package as a
|
||||
product of your own.
|
||||
|
||||
6. The scripts and library files supplied as input to or produced as
|
||||
output from the programs of this Package do not automatically fall
|
||||
under the copyright of this Package, but belong to whomever generated
|
||||
them, and may be sold commercially, and may be aggregated with this
|
||||
Package.
|
||||
|
||||
7. C subroutines supplied by you and linked into this Package in order
|
||||
to emulate subroutines and variables of the language defined by this
|
||||
Package shall not be considered part of this Package, but are the
|
||||
equivalent of input as in Paragraph 6, provided these subroutines do
|
||||
not change the language in any way that would cause it to fail the
|
||||
regression tests for the language.
|
||||
|
||||
8. The name of the Copyright Holder may not be used to endorse or promote
|
||||
products derived from this software without specific prior written permission.
|
||||
|
||||
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
The End
|
40
contrib/ee/Changes
Normal file
40
contrib/ee/Changes
Normal file
@ -0,0 +1,40 @@
|
||||
version 1.5.0 (2/16/2009)
|
||||
- added display of line number, column, and lines from top to separator line
|
||||
for info window
|
||||
- minor changes to reduce number of warnings when using -pedantic option
|
||||
|
||||
version 1.4.7 (2/10/2009)
|
||||
- changed how strings are terminated from the old usage of NULL to the current
|
||||
use of character zero, '\0'
|
||||
- changed the licensing since the Artistic License is now considered
|
||||
restrictive
|
||||
|
||||
version 1.4.6
|
||||
- modified new_curse.c to handle different subdirectory naming in terminfo
|
||||
directory; first noted on Mac OS 10.2
|
||||
|
||||
version 1.4.5a (12/23/2001)
|
||||
- modified get_options to be cleaner for arg handling
|
||||
|
||||
version 1.4.5 (12/15/2001)
|
||||
- made changes to check usage of arguments provided so that if a file is
|
||||
specified options are no longer accepted (that is, they are treated as file
|
||||
names)
|
||||
- changed to use ee_version.h to allow changing version number without need
|
||||
to change ee.c directly
|
||||
|
||||
version 1.4.4 (8/17/2001)
|
||||
- added code to check if the parent process has died, and if so to exit
|
||||
gracefully
|
||||
|
||||
version 1.4.3 (6/25/2001)
|
||||
- modified create.make and new_curse.c to allow defining TERMCAP file
|
||||
location (since some distributions move the file)
|
||||
- source directory now has version number attached to directory name
|
||||
|
||||
version 1.4.2 (1/19/2001)
|
||||
- change to create.make script to add unistd.h to files to search for
|
||||
select() declaration
|
||||
- change to new_curse.c for proper raw mode operation
|
||||
|
||||
|
@ -1,26 +1,29 @@
|
||||
THIS MATERIAL IS PROVIDED "AS IS". THERE ARE NO WARRANTIES OF
|
||||
ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS FOR A PARTICULAR PURPOSE. Neither Hewlett-Packard nor
|
||||
Hugh Mahon shall be liable for errors contained herein, nor for
|
||||
incidental or consequential damages in connection with the
|
||||
furnishing, performance or use of this material. Neither
|
||||
Hewlett-Packard nor Hugh Mahon assumes any responsibility for
|
||||
the use or reliability of this software or documentation. This
|
||||
software and documentation is totally UNSUPPORTED. There is no
|
||||
support contract available. Hewlett-Packard has done NO
|
||||
Quality Assurance on ANY of the program or documentation. You
|
||||
may find the quality of the materials inferior to supported
|
||||
materials.
|
||||
Copyright (c) 2009, Hugh Mahon
|
||||
All rights reserved.
|
||||
|
||||
This software may be distributed under the terms of Larry Wall's
|
||||
Artistic license, a copy of which is included in this distribution.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
This notice must be included with this software and any
|
||||
derivatives.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
Any modifications to this software by anyone but the original author
|
||||
must be so noted.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
The editor 'ee' (easy editor) is intended to be a simple, easy to use
|
||||
@ -51,7 +54,7 @@ completely replaced by graphical user interfaces for at least a few more
|
||||
years, I'd like to do what I can to make using computers with less
|
||||
glamorous interfaces as easy to use as possible. If terminal interfaces
|
||||
are still used in ten years, I hope neophytes won't still be stuck with
|
||||
only vi.
|
||||
only vi.
|
||||
|
||||
For a text editor to be easy to use requires a certain set of abilities. In
|
||||
order for ee to work, a terminal must have the ability to position the cursor
|
||||
@ -110,7 +113,7 @@ are:
|
||||
people.
|
||||
|
||||
Hugh Mahon |___|
|
||||
h_mahon@fc.hp.com | |
|
||||
hugh4242@yahoo.com | |
|
||||
|\ /|
|
||||
| \/ |
|
||||
|
||||
|
@ -4,14 +4,27 @@
|
||||
# This script will determine if the system is a System V or BSD based
|
||||
# UNIX system and create a makefile for ee appropriate for the system.
|
||||
#
|
||||
# $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.7 2001/01/20 04:57:17 hugh Exp hugh $
|
||||
# $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.13 2002/09/23 04:18:13 hugh Exp $
|
||||
#
|
||||
|
||||
#set -x
|
||||
|
||||
name_string="`uname`"
|
||||
|
||||
# test for existence of termcap (exists on both BSD and SysV systems)
|
||||
|
||||
if [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ]
|
||||
then
|
||||
termcap_exists="TRUE"
|
||||
if [ -f /usr/share/lib/termcap ]
|
||||
then
|
||||
termcap_exists="-DTERMCAP=\"\\\"/usr/share/lib/termcap\\\"\""
|
||||
elif [ -f /usr/share/misc/termcap ]
|
||||
then
|
||||
termcap_exists="-DTERMCAP=\"\\\"/usr/share/misc/termcap\\\"\""
|
||||
elif [ -f /etc/termcap ]
|
||||
then
|
||||
termcap_exists="-DTERMCAP=\"\\\"/etc/termcap\\\"\""
|
||||
fi
|
||||
else
|
||||
termcap_exists=""
|
||||
fi
|
||||
@ -212,16 +225,27 @@ else
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$CFLAGS" ]
|
||||
if [ "$name_string" = "Darwin" ]
|
||||
then
|
||||
if [ -z "`echo $CFLAGS | grep '[-]g'`" ]
|
||||
if [ -n "$CFLAGS" ]
|
||||
then
|
||||
other_cflags="${CFLAGS} -s"
|
||||
other_cflags="${CFLAGS} -DNO_CATGETS"
|
||||
else
|
||||
other_cflags="${CFLAGS}"
|
||||
other_cflags="-DNO_CATGETS"
|
||||
fi
|
||||
else
|
||||
other_cflags="-s"
|
||||
|
||||
if [ -n "$CFLAGS" ]
|
||||
then
|
||||
if [ -z "`echo $CFLAGS | grep '[-]g'`" ]
|
||||
then
|
||||
other_cflags="${CFLAGS} -s"
|
||||
else
|
||||
other_cflags="${CFLAGS}"
|
||||
fi
|
||||
else
|
||||
other_cflags="-s"
|
||||
fi
|
||||
fi
|
||||
|
||||
# time to write the makefile
|
||||
@ -235,7 +259,7 @@ fi
|
||||
|
||||
echo "DEFINES = $termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local
|
||||
echo "" >> make.local
|
||||
echo "CFLAGS = $HAS_UNISTD $HAS_STDARG $HAS_STDLIB $HAS_CTYPE $HAS_SYS_IOCTL $HAS_SYS_WAIT $five_lib $five_include $select_hdr $other_cflags" >> make.local
|
||||
echo "CFLAGS = $HAS_UNISTD $HAS_STDARG $HAS_STDLIB $HAS_CTYPE $HAS_SYS_IOCTL $HAS_SYS_WAIT $five_lib $five_include $select_hdr $other_cflags $termcap_exists" >> make.local
|
||||
echo "" >> make.local
|
||||
echo "" >> make.local
|
||||
echo "all : $TARGET" >> make.local
|
||||
|
@ -4,7 +4,7 @@
|
||||
.\"
|
||||
.\" nroff -man ee.1
|
||||
.\"
|
||||
.\" $Header: /home/hugh/sources/old_ae/RCS/ee.1,v 1.19 1995/11/29 04:03:15 hugh Exp hugh $
|
||||
.\" $Header: /home/hugh/sources/old_ae/RCS/ee.1,v 1.22 2001/12/16 04:49:27 hugh Exp $
|
||||
.\"
|
||||
.\"
|
||||
.TH ee 1 "" "" "" ""
|
||||
@ -29,6 +29,10 @@ is the same as
|
||||
but restricted to editing the named
|
||||
file (no file operations, or shell escapes are allowed).
|
||||
.PP
|
||||
An editor with similar user-friendly qualities but more features is available
|
||||
and is called
|
||||
.I aee.
|
||||
.PP
|
||||
For
|
||||
.I ee
|
||||
to work properly, the environment variable
|
||||
@ -402,7 +406,7 @@ cursor location. The old information would have to be deleted by the user.
|
||||
.PP
|
||||
Since different users have different preferences, \fIee\fR allows some
|
||||
slight configurability. There are three possible locations for an
|
||||
initialization file for ee: the file \fI/usr/local/lib/init.ee\fR, the
|
||||
initialization file for ee: the file \fI/usr/share/misc/init.ee\fR, the
|
||||
file \fI.init.ee\fR in the user's home directory, or the file \fI.init.ee\fR
|
||||
in the current directory (if different from the home
|
||||
directory). This allows system administrators to set some preferences for
|
||||
@ -410,7 +414,7 @@ the users on a system-wide basis (for example, the \fBprint\fR command),
|
||||
and the user to customize settings for particular directories (like one
|
||||
for correspondence, and a different directory for programming).
|
||||
.PP
|
||||
The file \fI\/usr/local/lib/init.ee\fR is read first, then
|
||||
The file \fI\/usr/share/misc/init.ee\fR is read first, then
|
||||
\fI$HOME/.init.ee\fR, then \fI.init.ee\fR, with the settings specified by the
|
||||
most recent file read taking precedence.
|
||||
.PP
|
||||
@ -517,7 +521,7 @@ The automatic paragraph formatting operation
|
||||
may be too slow for slower systems.
|
||||
.SH FILES
|
||||
.PP
|
||||
.I /usr/local/lib/init.ee
|
||||
.I /usr/share/misc/init.ee
|
||||
.br
|
||||
.I $HOME/.init.ee
|
||||
.br
|
||||
@ -532,8 +536,8 @@ This software and documentation contains
|
||||
proprietary information which is protected by
|
||||
copyright. All rights are reserved.
|
||||
.PP
|
||||
Copyright (c) 1990, 1991, 1992, 1993, 1995, 1996 Hugh Mahon.
|
||||
Copyright (c) 1990, 1991, 1992, 1993, 1995, 1996, 2001 Hugh Mahon.
|
||||
.SH "SEE ALSO"
|
||||
.PP
|
||||
termcap(4), terminfo(4), environ(5), spell(1), ispell(1), lp(1)
|
||||
termcap(4), terminfo(4), environ(5), spell(1), ispell(1), lp(1), aee(1)
|
||||
|
||||
|
402
contrib/ee/ee.c
402
contrib/ee/ee.c
File diff suppressed because it is too large
Load Diff
@ -52,7 +52,7 @@ $quote "
|
||||
41 "^f undelete char ^n next page ^x search "
|
||||
42 "^g begin of line ^o end of line ^y delete line "
|
||||
43 "^h backspace ^p prev page ^z undelete line "
|
||||
44 "^[ (escape) menu ESC-Enter: exit ee "
|
||||
44 "^[ (escape) menu "
|
||||
45 " "
|
||||
46 "Commands: "
|
||||
47 "help : get this info file : print file name "
|
||||
@ -69,7 +69,7 @@ $quote "
|
||||
58 "^a ascii code ^x search ^z undelete line ^d down ^n next page "
|
||||
59 "^b bottom of text ^g begin of line ^w delete word ^l left "
|
||||
60 "^t top of text ^o end of line ^v undelete word ^r right "
|
||||
61 "^c command ^k delete char ^f undelete char ESC-Enter: exit ee "
|
||||
61 "^c command ^k delete char ^f undelete char "
|
||||
62 "help : get help info |file : print file name |line : print line # "
|
||||
63 "read : read a file |char : ascii code of char |0-9 : go to line \"#\""
|
||||
64 "write: write a file |case : case sensitive search |exit : leave and save "
|
||||
@ -111,7 +111,7 @@ $quote "
|
||||
100 " ...searching"
|
||||
101 "string \"%s\" not found"
|
||||
102 "search for: "
|
||||
103 "could not exec %s"
|
||||
103 "could not exec %s\n"
|
||||
104 "press return to continue "
|
||||
105 "press Esc to cancel"
|
||||
106 "menu too large for window"
|
||||
@ -155,8 +155,8 @@ $quote "
|
||||
144 "NOEIGHTBIT"
|
||||
145 "emacs key bindings "
|
||||
146 "^a beginning of line ^i tab ^r restore word "
|
||||
147 "^b back 1 char ^j undel char ^t begin of file "
|
||||
148 "^c command ^k delete line ^u end of file "
|
||||
147 "^b back 1 char ^j undel char ^t top of text "
|
||||
148 "^c command ^k delete line ^u bottom of text "
|
||||
149 "^d delete char ^l undelete line ^v next page "
|
||||
150 "^e end of line ^m newline ^w delete word "
|
||||
151 "^f forward 1 char ^n next line ^x search "
|
||||
@ -165,7 +165,7 @@ $quote "
|
||||
154 "^[ (escape) menu ^y search prompt ^k delete line ^p prev li ^g prev page"
|
||||
155 "^o ascii code ^x search ^l undelete line ^n next li ^v next page"
|
||||
156 "^u end of file ^a begin of line ^w delete word ^b back 1 char "
|
||||
157 "^t begin of file ^e end of line ^r restore word ^f forward 1 char "
|
||||
157 "^t top of text ^e end of line ^r restore word ^f forward 1 char "
|
||||
158 "^c command ^d delete char ^j undelete char ^z next word "
|
||||
159 "EMACS"
|
||||
160 "NOEMACS"
|
||||
|
6
contrib/ee/ee_version.h
Normal file
6
contrib/ee/ee_version.h
Normal file
@ -0,0 +1,6 @@
|
||||
/*
|
||||
| provide a version number for ee
|
||||
*/
|
||||
|
||||
#define EE_VERSION "1.5.0"
|
||||
#define DATE_STRING "$Date: 2009/02/17 03:32:30 $"
|
@ -5,46 +5,44 @@
|
||||
|
|
||||
| written by Hugh Mahon
|
||||
|
|
||||
| THIS MATERIAL IS PROVIDED "AS IS". THERE ARE
|
||||
| NO WARRANTIES OF ANY KIND WITH REGARD TO THIS
|
||||
| MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
| FITNESS FOR A PARTICULAR PURPOSE. Neither
|
||||
| Hewlett-Packard nor Hugh Mahon shall be liable
|
||||
| for errors contained herein, nor for
|
||||
| incidental or consequential damages in
|
||||
| connection with the furnishing, performance or
|
||||
| use of this material. Neither Hewlett-Packard
|
||||
| nor Hugh Mahon assumes any responsibility for
|
||||
| the use or reliability of this software or
|
||||
| documentation. This software and
|
||||
| documentation is totally UNSUPPORTED. There
|
||||
| is no support contract available. Hewlett-
|
||||
| Packard has done NO Quality Assurance on ANY
|
||||
| of the program or documentation. You may find
|
||||
| the quality of the materials inferior to
|
||||
| supported materials.
|
||||
| Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995, 2009 Hugh Mahon
|
||||
| All rights reserved.
|
||||
|
|
||||
| Redistribution and use in source and binary forms, with or without
|
||||
| modification, are permitted provided that the following conditions
|
||||
| are met:
|
||||
|
|
||||
| * Redistributions of source code must retain the above copyright
|
||||
| notice, this list of conditions and the following disclaimer.
|
||||
| * Redistributions in binary form must reproduce the above
|
||||
| copyright notice, this list of conditions and the following
|
||||
| disclaimer in the documentation and/or other materials provided
|
||||
| with the distribution.
|
||||
|
|
||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
| FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
| COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
| BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
| CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
| LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
| ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
| POSSIBILITY OF SUCH DAMAGE.
|
||||
|
|
||||
| This software is not a product of Hewlett-Packard, Co., or any
|
||||
| other company. No support is implied or offered with this software.
|
||||
| You've got the source, and you're on your own.
|
||||
|
|
||||
| This software may be distributed under the terms of Larry Wall's
|
||||
| Artistic license, a copy of which is included in this distribution.
|
||||
|
|
||||
| This notice must be included with this software and any derivatives.
|
||||
|
|
||||
| Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995 Hugh Mahon
|
||||
|
|
||||
| All are rights reserved.
|
||||
|
|
||||
| $Header: /home/hugh/sources/old_ae/RCS/new_curse.c,v 1.50 2001/01/19 02:53:40 hugh Exp hugh $
|
||||
| $Header: /home/hugh/sources/old_ae/RCS/new_curse.c,v 1.54 2002/09/21 00:47:14 hugh Exp $
|
||||
|
|
||||
*/
|
||||
|
||||
char *copyright_message[] = { "Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995 Hugh Mahon",
|
||||
char *copyright_message[] = { "Copyright (c) 1986, 1987, 1988, 1991, 1992, 1993, 1994, 1995, 2009 Hugh Mahon",
|
||||
"All rights are reserved."};
|
||||
|
||||
char * new_curse_name= "@(#) new_curse.c $Revision: 1.50 $";
|
||||
char * new_curse_name= "@(#) new_curse.c $Revision: 1.54 $";
|
||||
|
||||
#include "new_curse.h"
|
||||
#include <signal.h>
|
||||
@ -501,6 +499,10 @@ int interrupt_flag = FALSE; /* set true if SIGWINCH received */
|
||||
char *Strings;
|
||||
#endif
|
||||
|
||||
#if !defined(TERMCAP)
|
||||
#define TERMCAP "/etc/termcap"
|
||||
#endif
|
||||
|
||||
struct KEYS {
|
||||
int length; /* length of string sent by key */
|
||||
char *string; /* string sent by key */
|
||||
@ -658,6 +660,13 @@ int *virtual_lines;
|
||||
|
||||
static char nc_scrolling_ability = FALSE;
|
||||
|
||||
char *terminfo_path[] = {
|
||||
"/usr/lib/terminfo",
|
||||
"/usr/share/lib/terminfo",
|
||||
"/usr/share/terminfo",
|
||||
NULL
|
||||
};
|
||||
|
||||
#ifdef CAP
|
||||
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
@ -767,6 +776,7 @@ void
|
||||
initscr() /* initialize terminal for operations */
|
||||
{
|
||||
int value;
|
||||
int counter;
|
||||
char *lines_string;
|
||||
char *columns_string;
|
||||
#ifdef CAP
|
||||
@ -899,30 +909,26 @@ printf("starting initscr \n");fflush(stdout);
|
||||
Term_File_name = malloc(Data_Line_len);
|
||||
sprintf(Term_File_name, "%s/%c/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
if (Fildes == -1)
|
||||
{
|
||||
sprintf(Term_File_name, "%s/%x/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
}
|
||||
}
|
||||
if (Fildes == -1)
|
||||
counter = 0;
|
||||
while ((Fildes == -1) && (terminfo_path[counter] != NULL))
|
||||
{
|
||||
TERM_PATH = "/usr/lib/terminfo";
|
||||
Data_Line_len = 23 + strlen(TERM_PATH) + strlen(TERMINAL_TYPE);
|
||||
Term_File_name = malloc(Data_Line_len);
|
||||
sprintf(Term_File_name, "%s/%c/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
}
|
||||
if (Fildes == -1)
|
||||
{
|
||||
TERM_PATH = "/usr/share/lib/terminfo";
|
||||
Data_Line_len = 23 + strlen(TERM_PATH) + strlen(TERMINAL_TYPE);
|
||||
Term_File_name = malloc(Data_Line_len);
|
||||
sprintf(Term_File_name, "%s/%c/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
}
|
||||
if (Fildes == -1)
|
||||
{
|
||||
TERM_PATH = "/usr/share/terminfo";
|
||||
TERM_PATH = terminfo_path[counter];
|
||||
Data_Line_len = 23 + strlen(TERM_PATH) + strlen(TERMINAL_TYPE);
|
||||
Term_File_name = malloc(Data_Line_len);
|
||||
sprintf(Term_File_name, "%s/%c/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
if (Fildes == -1)
|
||||
{
|
||||
sprintf(Term_File_name, "%s/%x/%s", TERM_PATH, *TERMINAL_TYPE, TERMINAL_TYPE);
|
||||
Fildes = open(Term_File_name, O_RDONLY);
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
if (Fildes == -1)
|
||||
{
|
||||
@ -939,15 +945,15 @@ printf("starting initscr \n");fflush(stdout);
|
||||
if ((pointer = Term_File_name = getenv("TERMCAP")) != NULL)
|
||||
{
|
||||
if (*Term_File_name != '/')
|
||||
Term_File_name = "/etc/termcap";
|
||||
Term_File_name = TERMCAP;
|
||||
}
|
||||
else
|
||||
{
|
||||
Term_File_name = "/etc/termcap";
|
||||
Term_File_name = TERMCAP;
|
||||
}
|
||||
if ((TFP = fopen(Term_File_name, "r")) == NULL)
|
||||
{
|
||||
printf("unable to open /etc/termcap file \n");
|
||||
printf("unable to open %s file \n", TERMCAP);
|
||||
exit(0);
|
||||
}
|
||||
for (value = 0; value < 1024; value++)
|
||||
@ -1105,7 +1111,7 @@ INFO_PARSE() /* parse off the data in the terminfo data file */
|
||||
Num_bools--;
|
||||
Booleans[counter++] = *TERM_data_ptr++;
|
||||
}
|
||||
if (((unsigned int) TERM_data_ptr) & 1) /* force alignment */
|
||||
if ((unsigned long)TERM_data_ptr & 1) /* force alignment */
|
||||
TERM_data_ptr++;
|
||||
counter = 0;
|
||||
while (Num_ints)
|
||||
@ -1360,7 +1366,7 @@ Find_term() /* find terminal description in termcap file */
|
||||
char *Name;
|
||||
char *Ftemp;
|
||||
|
||||
Ftemp = Name = malloc(strlen(TERMINAL_TYPE + 1) + 1);
|
||||
Ftemp = Name = malloc(strlen(TERMINAL_TYPE) + 2);
|
||||
strcpy(Name, TERMINAL_TYPE);
|
||||
while (*Ftemp != (char)NULL)
|
||||
Ftemp++;
|
||||
@ -1468,13 +1474,13 @@ int columns;
|
||||
for (i = 0; i < columns; i++)
|
||||
{
|
||||
tmp->row[i] = ' ';
|
||||
tmp->attributes[i] = (char) NULL;
|
||||
tmp->attributes[i] = '\0';
|
||||
}
|
||||
tmp->scroll = tmp->changed = FALSE;
|
||||
tmp->row[0] = (char) NULL;
|
||||
tmp->attributes[0] = (char) NULL;
|
||||
tmp->row[columns] = (char) NULL;
|
||||
tmp->attributes[columns] = (char) NULL;
|
||||
tmp->row[0] = '\0';
|
||||
tmp->attributes[0] = '\0';
|
||||
tmp->row[columns] = '\0';
|
||||
tmp->attributes[columns] = '\0';
|
||||
tmp->last_char = 0;
|
||||
return(tmp);
|
||||
}
|
||||
@ -1859,7 +1865,7 @@ int place;
|
||||
}
|
||||
delay = 0;
|
||||
Otemp = string;
|
||||
while (*Otemp != (char) NULL)
|
||||
while (*Otemp != '\0')
|
||||
{
|
||||
if (*Otemp == '%')
|
||||
{
|
||||
@ -1877,7 +1883,7 @@ int place;
|
||||
| find the end of the
|
||||
| conditional statement
|
||||
*/
|
||||
while ((strncmp(Otemp, "%t", 2)) && (*Otemp != (char) NULL))
|
||||
while ((strncmp(Otemp, "%t", 2)) && (*Otemp != '\0'))
|
||||
{
|
||||
/*
|
||||
| move past '%'
|
||||
@ -1905,12 +1911,12 @@ int place;
|
||||
| find 'else' or end
|
||||
| of if statement
|
||||
*/
|
||||
while ((strncmp(Otemp, "%e", 2)) && (strncmp(Otemp, "%;", 2)) && (*Otemp != (char) NULL))
|
||||
while ((strncmp(Otemp, "%e", 2)) && (strncmp(Otemp, "%;", 2)) && (*Otemp != '\0'))
|
||||
Otemp++;
|
||||
/*
|
||||
| if an 'else' found
|
||||
*/
|
||||
if ((*Otemp != (char) NULL) && (!strncmp(Otemp, "%e", 2)))
|
||||
if ((*Otemp != '\0') && (!strncmp(Otemp, "%e", 2)))
|
||||
{
|
||||
Otemp++;
|
||||
Otemp++;
|
||||
@ -1918,12 +1924,12 @@ int place;
|
||||
/*
|
||||
| check for 'then' part
|
||||
*/
|
||||
while ((*tchar != (char) NULL) && (strncmp(tchar, "%t", 2)) && (strncmp(tchar, "%;", 2)))
|
||||
while ((*tchar != '\0') && (strncmp(tchar, "%t", 2)) && (strncmp(tchar, "%;", 2)))
|
||||
tchar++;
|
||||
/*
|
||||
| if end of string
|
||||
*/
|
||||
if (*tchar == (char) NULL)
|
||||
if (*tchar == '\0')
|
||||
{
|
||||
EVAL = FALSE;
|
||||
Cond_FLAG = FALSE;
|
||||
@ -1947,7 +1953,7 @@ int place;
|
||||
| get out of if
|
||||
| statement
|
||||
*/
|
||||
else if ((*Otemp != (char) NULL) && (!strncmp(Otemp, "%;", 2)))
|
||||
else if ((*Otemp != '\0') && (!strncmp(Otemp, "%;", 2)))
|
||||
{
|
||||
EVAL = FALSE;
|
||||
Otemp++;
|
||||
@ -1967,9 +1973,9 @@ int place;
|
||||
Cond_FLAG = FALSE;
|
||||
if (*Otemp != ';')
|
||||
{
|
||||
while ((*Otemp != (char) NULL) && (strncmp(Otemp, "%;", 2)))
|
||||
while ((*Otemp != '\0') && (strncmp(Otemp, "%;", 2)))
|
||||
Otemp++;
|
||||
if (*Otemp != (char) NULL)
|
||||
if (*Otemp != '\0')
|
||||
{
|
||||
Otemp++;
|
||||
Otemp++;
|
||||
@ -2038,12 +2044,12 @@ int cols;
|
||||
for (j = line->last_char; j < column; j++)
|
||||
{
|
||||
line->row[j] = ' ';
|
||||
line->attributes[j] = (char) NULL;
|
||||
line->attributes[j] = '\0';
|
||||
}
|
||||
}
|
||||
line->last_char = column;
|
||||
line->row[column] = (char) NULL;
|
||||
line->attributes[column] = (char) NULL;
|
||||
line->row[column] = '\0';
|
||||
line->attributes[column] = '\0';
|
||||
line->changed = TRUE;
|
||||
}
|
||||
|
||||
@ -2175,14 +2181,14 @@ WINDOW *window;
|
||||
virt_col++, user_col++)
|
||||
{
|
||||
virtual_line->row[virt_col] = ' ';
|
||||
virtual_line->attributes[virt_col] = (char) NULL;
|
||||
virtual_line->attributes[virt_col] = '\0';
|
||||
}
|
||||
}
|
||||
if (virtual_scr->Num_cols != window->Num_cols)
|
||||
{
|
||||
if (virtual_line->last_char < (user_line->last_char + window->SC))
|
||||
{
|
||||
if (virtual_line->row[virtual_line->last_char] == (char) NULL)
|
||||
if (virtual_line->row[virtual_line->last_char] == '\0')
|
||||
virtual_line->row[virtual_line->last_char] = ' ';
|
||||
virtual_line->last_char =
|
||||
min(virtual_scr->Num_cols,
|
||||
@ -2191,7 +2197,7 @@ WINDOW *window;
|
||||
}
|
||||
else
|
||||
virtual_line->last_char = user_line->last_char;
|
||||
virtual_line->row[virtual_line->last_char] = (char) NULL;
|
||||
virtual_line->row[virtual_line->last_char] = '\0';
|
||||
virtual_line->changed = user_line->changed;
|
||||
virtual_line = virtual_line->next_screen;
|
||||
user_line = user_line->next_screen;
|
||||
@ -2336,7 +2342,7 @@ int first_char; /* first character of sequence */
|
||||
Count = 0;
|
||||
Gtemp = string;
|
||||
string[Count++] = first_char;
|
||||
string[Count] = (char) NULL;
|
||||
string[Count] = '\0';
|
||||
Time_Out = FALSE;
|
||||
#ifndef BSD_SELECT
|
||||
signal(SIGALRM, Clear);
|
||||
@ -2360,7 +2366,7 @@ fflush(stderr);
|
||||
if (in_char != -1)
|
||||
{
|
||||
string[Count++] = in_char;
|
||||
string[Count] = (char) NULL;
|
||||
string[Count] = '\0';
|
||||
St_point = KEY_TOS;
|
||||
while ((St_point != NULL) && (!Found))
|
||||
{
|
||||
@ -2446,10 +2452,10 @@ int c;
|
||||
for (j = tmpline->last_char; j < column; j++)
|
||||
{
|
||||
tmpline->row[j] = ' ';
|
||||
tmpline->attributes[j] = (char) NULL;
|
||||
tmpline->attributes[j] = '\0';
|
||||
}
|
||||
tmpline->row[column + 1] = (char) NULL;
|
||||
tmpline->attributes[column + 1] = (char) NULL;
|
||||
tmpline->row[column + 1] = '\0';
|
||||
tmpline->attributes[column + 1] = '\0';
|
||||
tmpline->last_char = column + 1;
|
||||
}
|
||||
}
|
||||
@ -2627,7 +2633,7 @@ char *string;
|
||||
{
|
||||
char *wstring;
|
||||
|
||||
for (wstring = string; *wstring != (char) NULL; wstring++)
|
||||
for (wstring = string; *wstring != '\0'; wstring++)
|
||||
waddch(window, *wstring);
|
||||
}
|
||||
|
||||
@ -2705,7 +2711,7 @@ noraw() /* set to normal character read mode */
|
||||
Terminal.c_lflag |= ICANON; /* enable canonical operation */
|
||||
Terminal.c_lflag |= ISIG; /* enable signal checking */
|
||||
Terminal.c_cc[VEOF] = 4; /* EOF character = 4 */
|
||||
Terminal.c_cc[VEOL] = (char) NULL; /* EOL = 0 */
|
||||
Terminal.c_cc[VEOL] = '\0'; /* EOL = 0 */
|
||||
Terminal.c_cc[VINTR] = Intr; /* reset interrupt char */
|
||||
value = ioctl(0, TCSETA, &Terminal); /* set characteristics */
|
||||
#else
|
||||
@ -2873,7 +2879,7 @@ wprintw(WINDOW *window, const char *format, ...)
|
||||
#endif /* __STDC__ */
|
||||
|
||||
fpoint = (char *) format;
|
||||
while (*fpoint != (char) NULL)
|
||||
while (*fpoint != '\0')
|
||||
{
|
||||
if (*fpoint == '%')
|
||||
{
|
||||
@ -2950,12 +2956,12 @@ struct _line *line2;
|
||||
att1 = line1->attributes;
|
||||
att2 = line2->attributes;
|
||||
i = 0;
|
||||
while ((c1[i] != (char) NULL) && (c2[i] != (char) NULL) && (c1[i] == c2[i]) && (att1[i] == att2[i]))
|
||||
while ((c1[i] != '\0') && (c2[i] != '\0') && (c1[i] == c2[i]) && (att1[i] == att2[i]))
|
||||
i++;
|
||||
count1 = i + 1;
|
||||
if ((count1 == 1) && (c1[i] == (char) NULL) && (c2[i] == (char) NULL))
|
||||
if ((count1 == 1) && (c1[i] == '\0') && (c2[i] == '\0'))
|
||||
count1 = 0; /* both lines blank */
|
||||
else if ((c1[i] == (char) NULL) && (c2[i] == (char) NULL))
|
||||
else if ((c1[i] == '\0') && (c2[i] == '\0'))
|
||||
count1 = -1; /* equal */
|
||||
else
|
||||
count1 = 1; /* lines unequal */
|
||||
@ -3108,9 +3114,9 @@ int row, column;
|
||||
for (x = column; x<window->Num_cols; x++)
|
||||
{
|
||||
tmp1->row[x] = ' ';
|
||||
tmp1->attributes[x] = (char) NULL;
|
||||
tmp1->attributes[x] = '\0';
|
||||
}
|
||||
tmp1->row[column] = (char) NULL;
|
||||
tmp1->row[column] = '\0';
|
||||
tmp1->last_char = column;
|
||||
if (column < COLS)
|
||||
{
|
||||
@ -3152,16 +3158,16 @@ struct _line *pointer_new, *pointer_old;
|
||||
old_lin = pointer_old->row;
|
||||
old_att = pointer_old->attributes;
|
||||
end_old = end_new = offset;
|
||||
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (old_lin[end_old] != (char) NULL) && (new_lin[end_old] != (char) NULL))
|
||||
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (old_lin[end_old] != '\0') && (new_lin[end_old] != '\0'))
|
||||
end_old++;
|
||||
if (old_lin[end_old] != (char) NULL)
|
||||
if (old_lin[end_old] != '\0')
|
||||
{
|
||||
k = 0;
|
||||
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (new_att[end_new+k] == old_att[end_old+k]) && (new_lin[end_new+k] != (char) NULL) && (old_lin[end_old+k] != (char) NULL) && (k < 10))
|
||||
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (new_att[end_new+k] == old_att[end_old+k]) && (new_lin[end_new+k] != '\0') && (old_lin[end_old+k] != '\0') && (k < 10))
|
||||
k++;
|
||||
if ((k > 8) || ((new_lin[end_new+k] == (char) NULL) && (k != 0)))
|
||||
if ((k > 8) || ((new_lin[end_new+k] == '\0') && (k != 0)))
|
||||
{
|
||||
if (new_lin[end_new+k] == (char) NULL)
|
||||
if (new_lin[end_new+k] == '\0')
|
||||
{
|
||||
Position(window, line, (end_new+k));
|
||||
CLEAR_TO_EOL(window, line, (end_new+k));
|
||||
@ -3169,7 +3175,7 @@ struct _line *pointer_new, *pointer_old;
|
||||
Position(window, line, offset);
|
||||
for (k = offset; k < end_old; k++)
|
||||
Char_del(old_lin, old_att, offset, window->Num_cols);
|
||||
while ((old_lin[offset] != (char) NULL) && (offset < COLS))
|
||||
while ((old_lin[offset] != '\0') && (offset < COLS))
|
||||
offset++;
|
||||
pointer_old->last_char = offset;
|
||||
changed = TRUE;
|
||||
@ -3206,12 +3212,12 @@ struct _line *pointer_new, *pointer_old;
|
||||
old_lin = pointer_old->row;
|
||||
old_att = pointer_old->attributes;
|
||||
end_old = end_new = offset;
|
||||
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (new_lin[end_new] != (char) NULL) && (old_lin[end_new] != (char) NULL))
|
||||
while (((new_lin[end_new] != old_lin[end_old]) || (new_att[end_new] != old_att[end_old])) && (new_lin[end_new] != '\0') && (old_lin[end_new] != '\0'))
|
||||
end_new++;
|
||||
if (new_lin[end_new] != (char) NULL)
|
||||
if (new_lin[end_new] != '\0')
|
||||
{
|
||||
k = 0;
|
||||
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (old_att[end_old+k] == new_att[end_new+k]) && (new_lin[end_new+k] != (char) NULL) && (old_lin[end_old+k] != (char) NULL) && (k < 10))
|
||||
while ((old_lin[end_old+k] == new_lin[end_new+k]) && (old_att[end_old+k] == new_att[end_new+k]) && (new_lin[end_new+k] != '\0') && (old_lin[end_old+k] != '\0') && (k < 10))
|
||||
k++;
|
||||
/*
|
||||
| check for commonality between rest of lines (are the old
|
||||
@ -3219,11 +3225,11 @@ struct _line *pointer_new, *pointer_old;
|
||||
| if the rest of the lines are common, do not insert text
|
||||
*/
|
||||
old_off = end_new;
|
||||
while ((old_lin[old_off] != (char) NULL) && (new_lin[old_off] != (char) NULL) && (old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
|
||||
while ((old_lin[old_off] != '\0') && (new_lin[old_off] != '\0') && (old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
|
||||
old_off++;
|
||||
if ((old_lin[old_off] == new_lin[old_off]) && (old_att[old_off] == new_att[old_off]))
|
||||
same = TRUE;
|
||||
if ((!same) && ((k > 8) || ((new_lin[end_new+k] == (char) NULL) && (k != 0))))
|
||||
if ((!same) && ((k > 8) || ((new_lin[end_new+k] == '\0') && (k != 0))))
|
||||
{
|
||||
Position(window, line, offset);
|
||||
insert = FALSE;
|
||||
@ -3240,7 +3246,7 @@ struct _line *pointer_new, *pointer_old;
|
||||
}
|
||||
if (insert)
|
||||
String_Out(String_table[ei__], NULL, 0);
|
||||
while ((old_lin[offset] != (char) NULL) && (offset < COLS))
|
||||
while ((old_lin[offset] != '\0') && (offset < COLS))
|
||||
offset++;
|
||||
pointer_old->last_char = offset;
|
||||
changed = TRUE;
|
||||
@ -3311,7 +3317,7 @@ doupdate()
|
||||
for (from_top = 0, curr = curscr->first_line; from_top < curscr->Num_lines; from_top++, curr = curr->next_screen)
|
||||
{
|
||||
Position(curscr, from_top, 0);
|
||||
for (j = 0; (curr->row[j] != (char) NULL) && (j < curscr->Num_cols); j++)
|
||||
for (j = 0; (curr->row[j] != '\0') && (j < curscr->Num_cols); j++)
|
||||
{
|
||||
Char_out(curr->row[j], curr->attributes[j], curr->row, curr->attributes, j);
|
||||
}
|
||||
@ -3533,7 +3539,7 @@ doupdate()
|
||||
*/
|
||||
|
||||
if (((String_table[ic__]) || (String_table[im__])) &&
|
||||
(String_table[dc__]) && (curr->row[0] != (char) NULL) &&
|
||||
(String_table[dc__]) && (curr->row[0] != '\0') &&
|
||||
(!NC_chinese))
|
||||
{
|
||||
j = 0;
|
||||
@ -3542,11 +3548,11 @@ doupdate()
|
||||
vrt_att = virt->attributes;
|
||||
cur_lin = curr->row;
|
||||
cur_att = curr->attributes;
|
||||
while ((vrt_lin[j] != (char) NULL) && (j < window->Num_cols))
|
||||
while ((vrt_lin[j] != '\0') && (j < window->Num_cols))
|
||||
{
|
||||
if ((STAND) && (Booleans[xs__]))
|
||||
{
|
||||
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != (char) NULL) && (vrt_att[j]))
|
||||
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != '\0') && (vrt_att[j]))
|
||||
j++;
|
||||
if ((STAND) && (!vrt_att[j]))
|
||||
{
|
||||
@ -3558,7 +3564,7 @@ doupdate()
|
||||
}
|
||||
else
|
||||
{
|
||||
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != (char) NULL))
|
||||
while ((vrt_lin[j] == cur_lin[j]) && (vrt_att[j] == cur_att[j]) && (vrt_lin[j] != '\0'))
|
||||
j++;
|
||||
}
|
||||
if ((vrt_att[j] != cur_att[j]) && (cur_att[j]) && (Booleans[xs__]))
|
||||
@ -3568,7 +3574,7 @@ doupdate()
|
||||
attribute_off();
|
||||
attribute_off();
|
||||
}
|
||||
if (vrt_lin[j] != (char) NULL)
|
||||
if (vrt_lin[j] != '\0')
|
||||
{
|
||||
begin_new = j;
|
||||
begin_old = j;
|
||||
@ -3586,7 +3592,7 @@ doupdate()
|
||||
changed = check_insert(window, from_top, j, virt, curr);
|
||||
if (((!changed) || (cur_lin[j] != vrt_lin[j]) || (cur_att[j] != vrt_att[j])) && (j < window->Num_cols))
|
||||
{
|
||||
if ((vrt_lin[j] == ' ') && (cur_lin[j] == (char) NULL) && (vrt_att[j] == cur_att[j]))
|
||||
if ((vrt_lin[j] == ' ') && (cur_lin[j] == '\0') && (vrt_att[j] == cur_att[j]))
|
||||
cur_lin[j] = ' ';
|
||||
else
|
||||
{
|
||||
@ -3594,7 +3600,7 @@ doupdate()
|
||||
Char_out(vrt_lin[j], vrt_att[j], cur_lin, cur_att, j);
|
||||
}
|
||||
}
|
||||
if ((vrt_lin[j] != (char) NULL))
|
||||
if ((vrt_lin[j] != '\0'))
|
||||
j++;
|
||||
}
|
||||
if ((STAND) && (!vrt_att[j]))
|
||||
@ -3604,7 +3610,7 @@ doupdate()
|
||||
attribute_off();
|
||||
}
|
||||
}
|
||||
if ((vrt_lin[j] == (char) NULL) && (cur_lin[j] != (char) NULL))
|
||||
if ((vrt_lin[j] == '\0') && (cur_lin[j] != '\0'))
|
||||
{
|
||||
Position(window, from_top, j);
|
||||
CLEAR_TO_EOL(window, from_top, j);
|
||||
@ -3617,9 +3623,9 @@ doupdate()
|
||||
att1 = curr->attributes;
|
||||
c2 = virt->row;
|
||||
att2 = virt->attributes;
|
||||
while ((j < window->Num_cols) && (c2[j] != (char) NULL))
|
||||
while ((j < window->Num_cols) && (c2[j] != '\0'))
|
||||
{
|
||||
while ((c1[j] == c2[j]) && (att1[j] == att2[j]) && (j < window->Num_cols) && (c2[j] != (char) NULL))
|
||||
while ((c1[j] == c2[j]) && (att1[j] == att2[j]) && (j < window->Num_cols) && (c2[j] != '\0'))
|
||||
j++;
|
||||
|
||||
/*
|
||||
@ -3631,16 +3637,16 @@ doupdate()
|
||||
j--;
|
||||
begin_old = j;
|
||||
begin_new = j;
|
||||
if ((j < window->Num_cols) && (c2[j] != (char) NULL))
|
||||
if ((j < window->Num_cols) && (c2[j] != '\0'))
|
||||
{
|
||||
Position(window, from_top, begin_old);
|
||||
CLEAR_TO_EOL(window, from_top, j);
|
||||
Position(window, from_top, begin_old);
|
||||
for (j = begin_old; (c2[j] != (char) NULL) && (j < window->Num_cols); j++)
|
||||
for (j = begin_old; (c2[j] != '\0') && (j < window->Num_cols); j++)
|
||||
Char_out(c2[j], att2[j], c1, att1, j);
|
||||
}
|
||||
}
|
||||
if ((c2[j] == (char) NULL) && (c1[j] != (char) NULL))
|
||||
if ((c2[j] == '\0') && (c1[j] != '\0'))
|
||||
{
|
||||
Position(window, from_top, j);
|
||||
CLEAR_TO_EOL(window, from_top, j);
|
||||
@ -3696,7 +3702,7 @@ int maxlen;
|
||||
{
|
||||
int one, two;
|
||||
|
||||
for (one = offset, two = offset+1; (line[one] != (char) NULL) && (one < maxlen); one++, two++)
|
||||
for (one = offset, two = offset+1; (line[one] != '\0') && (one < maxlen); one++, two++)
|
||||
{
|
||||
line[one] = line[two];
|
||||
attrib[one] = attrib[two];
|
||||
@ -3716,7 +3722,7 @@ int maxlen;
|
||||
int one, two;
|
||||
|
||||
one = 0;
|
||||
while ((line[one] != (char) NULL) && (one < (maxlen - 2)))
|
||||
while ((line[one] != '\0') && (one < (maxlen - 2)))
|
||||
one++;
|
||||
for (two = one + 1; (two > offset); one--, two--)
|
||||
{
|
||||
|
@ -2,8 +2,8 @@
|
||||
|
||||
.PATH: ${.CURDIR}/../../contrib/ee
|
||||
|
||||
CFLAGS+= -DCAP -DHAS_NCURSES -DHAS_UNISTD -DHAS_STDARG -DHAS_STDLIB \
|
||||
-DHAS_CTYPE -DHAS_SYS_IOCTL -DHAS_SYS_WAIT -DSLCT_HDR
|
||||
CFLAGS+= -DHAS_NCURSES -DHAS_UNISTD -DHAS_STDARG -DHAS_STDLIB \
|
||||
-DHAS_CTYPE -DHAS_SYS_WAIT
|
||||
|
||||
PROG= ee
|
||||
LINKS= ${BINDIR}/ee ${BINDIR}/ree ${BINDIR}/ee ${BINDIR}/edit
|
||||
@ -11,6 +11,8 @@ MLINKS= ee.1 ree.1 ee.1 edit.1
|
||||
DPADD= ${LIBNCURSES}
|
||||
LDADD= -lncurses
|
||||
|
||||
WARNS?= 2
|
||||
|
||||
NLS= en_US.US-ASCII fr_FR.ISO8859-1 de_DE.ISO8859-1 pl_PL.ISO8859-2 \
|
||||
uk_UA.KOI8-U ru_RU.KOI8-R
|
||||
|
||||
|
@ -110,7 +110,7 @@ $quote "
|
||||
100 " ...Suche läuft"
|
||||
101 "Zeichenfolge \"%s\" nicht gefunden"
|
||||
102 "Suchen nach: "
|
||||
103 "Kann %s nicht ausführen"
|
||||
103 "Kann %s nicht ausführen\n"
|
||||
104 "Bitte die Eingabetaste drücken "
|
||||
105 "Escape zum Beenden"
|
||||
106 "Menü ist zu groß für das Fenster"
|
||||
|
@ -110,7 +110,7 @@ $quote "
|
||||
100 " ...recherche"
|
||||
101 "chaîne \"%s\" non trouvée"
|
||||
102 "rechercher : "
|
||||
103 "impossible d'exécuter %s"
|
||||
103 "impossible d'exécuter %s\n"
|
||||
104 "tapez entrée pour continuer "
|
||||
105 "pressez sur échap. pour annuler"
|
||||
106 "menu trop grand pour la fenêtre"
|
||||
|
@ -110,7 +110,7 @@ $quote "
|
||||
100 " ...szukam"
|
||||
101 "napis \"%s\" nie został znaleziony"
|
||||
102 "szukaj: "
|
||||
103 "nie można wykonać %s"
|
||||
103 "nie można wykonać %s\n"
|
||||
104 "naciśnij Enter żeby kontynuować "
|
||||
105 "naciśnij Esc żeby anulować"
|
||||
106 "menu zbyt duże dla tego okna"
|
||||
|
@ -112,7 +112,7 @@ $quote "
|
||||
100 " ...идёт поиск"
|
||||
101 "подстрока \"%s\" не найдена"
|
||||
102 "что искать: "
|
||||
103 "не могу запустить %s"
|
||||
103 "не могу запустить %s\n"
|
||||
104 "для продолжения нажмите Enter"
|
||||
105 "для отмены нажмите Esc"
|
||||
106 "слишком большое меню - не помещается в экран"
|
||||
|
@ -110,7 +110,7 @@ $quote "
|
||||
100 " ...пошук"
|
||||
101 "рядок \"%s\" не знайдено"
|
||||
102 "що шукати: "
|
||||
103 "не можу виконати %s"
|
||||
103 "не можу виконати %s\n"
|
||||
104 "натисн╕ть <enter> для продовження..."
|
||||
105 "Esc - в╕дм╕на"
|
||||
106 "меню завелике для екрану"
|
||||
|
Loading…
Reference in New Issue
Block a user