1
0
Fork 0
mirror of https://github.com/vbatts/bvi.git synced 2025-08-03 08:00:27 +00:00

bvi-1.5.0.src.tar.gz

6540716a1a3b2b9711635108da14b26baea488881d4a682121c0bddbba6b74cb  bvi-1.5.0.src.tar.gz

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
Gerhard Bürgmann 2025-07-27 10:02:07 -04:00 committed by Vincent Batts
parent 75fc14b579
commit 50898d8d59
Signed by: vbatts
GPG key ID: E30EFAA812C6E5ED
28 changed files with 1936 additions and 1473 deletions

94
comm.c
View file

@ -8,17 +8,18 @@
* 1999-09-10 V 1.2.0 final
* 2000-03-03 V 1.3.0 beta
* 2000-07-15 V 1.3.0 final
* 2001-10-10 V 1.3.1
* 2001-10-10 V 1.3.1
* 2003-07-04 V 1.3.2
* 2005-08-17 V 1.3.3
* 2010-06-02 V 1.3.4
* 2014-01-28 V 1.4.0
* 2019-01-27 V 1.4.1
* 2023-03-06 V 1.4.2
* 2025-07-19 V 1.5.0
*
* NOTE: Edit this file with tabstop=4 !
*
* Copyright 1996-2023 by Gerhard Buergmann
* Copyright 1996-2025 by Gerhard Buergmann
* gerhard@puon.at
*
* This program is free software; you can redistribute it and/or modify it
@ -72,8 +73,8 @@ static char *c_argv[9];
char *nowrtmsg = "No write@since last change (:%s! overrides)";
char *morefiles = "more files@to edit";
char *ambigous = "Ambigous|Too many file names";
char *ambvalue = "Ambigous|Too many values";
char *ambigous = "Ambiguous|Too many file names";
char *ambvalue = "Ambiguous|Too many values";
char *extra = "Extra chars|Extra characters at end of command";
char *noaddr = "No address allowed@on this command";
char *noval = "No value@for binary operation";
@ -98,8 +99,7 @@ static char oldbuf[CMDSZ + 3]; /** for :!! command **/
* the environment variable "BVIINIT" (or eventually .bvirc).
*/
void
docmdline(cmdline)
char *cmdline;
docmdline(char *cmdline)
{
char buff[CMDSZ];
char cmdbuf[CMDSZ];
@ -286,22 +286,22 @@ docmdline(cmdline)
if ((c_argv[c_argc] = strtok(cmd, " \t")) != NULL) c_argc++;
while ((c_argv[c_argc] = strtok(NULL, " \t")) != NULL) c_argc++;
if (c_argc > 1) {
if (c_argc > 1) {
emsg(ambigous);
return; }
if (c_argc == 1) {
/* change '%' to Filename */
while ((p = strchr(c_argv[0], '%')) != NULL && *(p-1) != '\\') {
if (name == NULL) {
emsg("No filename@to substitute for %");
return;
}
*p = '\0';
strcpy (oldbuf, c_argv[0]);
strcat (oldbuf, name);
strcat (oldbuf, p + 1);
/* change '%' to Filename */
while ((p = strchr(c_argv[0], '%')) != NULL && *(p-1) != '\\') {
if (name == NULL) {
emsg("No filename@to substitute for %");
return;
}
*p = '\0';
strcpy (oldbuf, c_argv[0]);
strcat (oldbuf, name);
strcat (oldbuf, p + 1);
c_argv[0] = oldbuf;
}
}
}
if (name == NULL && c_argc != 0) name = strdup(c_argv[0]);
if (force) {
@ -629,11 +629,7 @@ yd_addr()
/*********** Save file if not read only ********************/
int
save_chk(fname, start, end, flags)
char *fname;
char *start;
char *end;
int flags;
save_chk(char *fname, char *start, char *end, int flags)
{
if (P(P_RO)) {
sprintf(string, "\"%s\" File is read only", name);
@ -657,9 +653,7 @@ do_exit()
int
doecmd(arg, force)
char *arg;
int force;
doecmd(char *arg, int force)
{
char *tmp;
@ -722,33 +716,34 @@ clearstr()
/**** displays an error message *****/
void
emsg(s)
char *s;
emsg(char *s)
{
int cnt;
int stchar;
/*
int stchar;
if (P(P_EB)) beep();
if (P(P_MO)) {
stchar = statsize;
} else {
stchar = 0;
}
*/
if (P(P_EB)) beep();
statusflag = 0;
clearstr();
attrset(A_REVERSE);
cnt = outmsg(s);
attrset(A_NORMAL);
if (cnt >= (maxx - stchar)) {
addch('\n');
wait_return(TRUE); }
if (cnt >= (maxx)) {
// addch('\n');
wait_return(TRUE);
}
}
/*** System error message *****/
void
sysemsg(s)
char *s;
sysemsg(char *s)
{
char string[256];
@ -764,8 +759,7 @@ sysemsg(s)
/*** displays mode if showmode set *****/
void
smsg(s)
char *s;
smsg(char *s)
{
if (P(P_MO)) {
msg(s);
@ -776,30 +770,30 @@ smsg(s)
/************* displays s on status line *****************/
void
msg(s)
char *s;
msg(char *s)
{
/*
int stchar;
if (P(P_MO)) {
stchar = statsize;
} else {
stchar = 0;
}
}o*/
statusflag = 0;
clearstr();
if (outmsg(s) >= (maxx - stchar)) {
addch('\n');
if (outmsg(s) >= maxx) {
// addch('\n');
wait_return(TRUE);
}
}
int
outmsg(s)
char *s;
outmsg(char *s)
{
char *poi;
int cnt = 0;
int cnt = 0;
move(maxy, 0);
poi = strchr(s, '|');
@ -811,7 +805,7 @@ outmsg(s)
cnt++;
}
} else {
if (poi) poi++;
if (poi) poi++;
else poi = s;
while (*poi) {
if (*poi == '@') addch(' ');
@ -828,8 +822,7 @@ outmsg(s)
*
*/
int
wait_return(flag)
int flag;
wait_return(int flag)
{
int c;
@ -852,8 +845,7 @@ wait_return(flag)
int
chk_comm(flag)
int flag;
chk_comm(int flag)
{
if ((flag & NO_ADDR) && (addr_flag > 0)) {
emsg(noaddr); return 1; }