Code reformating (layout.c + logfile.c)

Signed-off-by: Alexander Naumov <alexander_naumov@opensuse.org>
This commit is contained in:
Alexander Naumov
2016-11-06 12:55:11 +01:00
parent c8a795edf3
commit c3384882db
2 changed files with 184 additions and 289 deletions

View File

@@ -39,48 +39,39 @@ struct layout *laytab[MAXLAY];
struct layout *layout_last, layout_last_marker;
struct layout *layout_attach = &layout_last_marker;
void
FreeLayoutCv(cv)
struct canvas *cv;
void FreeLayoutCv(struct canvas *cv)
{
struct canvas *cnext, *c = cv;
for (; cv; cv = cnext)
{
if (cv->c_slperp)
{
FreeLayoutCv(cv->c_slperp);
free(cv->c_slperp);
cv->c_slperp = 0;
}
cnext = cv->c_slnext;
cv->c_slnext = 0;
if (cv != c)
free(cv);
for (; cv; cv = cnext) {
if (cv->c_slperp) {
FreeLayoutCv(cv->c_slperp);
free(cv->c_slperp);
cv->c_slperp = 0;
}
cnext = cv->c_slnext;
cv->c_slnext = 0;
if (cv != c)
free(cv);
}
}
struct layout *
CreateLayout(title, startat)
char *title;
int startat;
struct layout *CreateLayout(char *title, int startat)
{
struct layout *lay, **pl;
int i;
if (startat >= MAXLAY || startat < 0)
startat = 0;
for (i = startat; ;)
{
if (!laytab[i])
break;
if (++i == MAXLAY)
i = 0;
if (i == startat)
{
Msg(0, "No more layouts\n");
return 0;
}
for (i = startat; ;) {
if (!laytab[i])
break;
if (++i == MAXLAY)
i = 0;
if (i == startat) {
Msg(0, "No more layouts\n");
return 0;
}
}
lay = (struct layout *)calloc(1, sizeof(*lay));
lay->lay_title = SaveStr(title);
lay->lay_autosave = 1;
@@ -95,10 +86,7 @@ int startat;
return lay;
}
void
SaveLayout(name, cv)
char *name;
struct canvas *cv;
void SaveLayout(char *name, struct canvas *cv)
{
struct layout *lay;
struct canvas *fcv;
@@ -118,9 +106,7 @@ struct canvas *cv;
D_layout = lay;
}
void
AutosaveLayout(lay)
struct layout *lay;
void AutosaveLayout(struct layout *lay)
{
struct canvas *fcv;
if (!lay || !lay->lay_autosave)
@@ -132,9 +118,7 @@ struct layout *lay;
D_forecv = fcv;
}
struct layout *
FindLayout(name)
char *name;
struct layout *FindLayout(char *name)
{
struct layout *lay;
char *s;
@@ -149,21 +133,17 @@ char *name;
return lay;
}
void
LoadLayout(lay, cv)
struct layout *lay;
struct canvas *cv;
void LoadLayout(struct layout *lay, struct canvas *cv)
{
AutosaveLayout(D_layout);
if (!lay)
{
while (D_canvas.c_slperp)
FreeCanvas(D_canvas.c_slperp);
MakeDefaultCanvas();
SetCanvasWindow(D_forecv, 0);
D_layout = 0;
return;
}
if (!lay) {
while (D_canvas.c_slperp)
FreeCanvas(D_canvas.c_slperp);
MakeDefaultCanvas();
SetCanvasWindow(D_forecv, 0);
D_layout = 0;
return;
}
while (D_canvas.c_slperp)
FreeCanvas(D_canvas.c_slperp);
D_cvlist = 0;
@@ -172,7 +152,8 @@ struct canvas *cv;
MakeDefaultCanvas();
DupLayoutCv(&lay->lay_canvas, &D_canvas, 0);
D_canvas.c_ys = (D_has_hstatus == HSTATUS_FIRSTLINE);
D_canvas.c_ye = D_height - 1 - ((D_canvas.c_slperp && D_canvas.c_slperp->c_slnext) || captionalways) - (D_has_hstatus == HSTATUS_LASTLINE);
D_canvas.c_ye = D_height - 1 - ((D_canvas.c_slperp && D_canvas.c_slperp->c_slnext) ||
captionalways) - (D_has_hstatus == HSTATUS_LASTLINE);
ResizeCanvas(&D_canvas);
RecreateCanvasChain();
RethinkDisplayViewports();
@@ -181,10 +162,7 @@ struct canvas *cv;
D_layout = lay;
}
void
NewLayout(title, startat)
char *title;
int startat;
void NewLayout(char *title, int startat)
{
struct layout *lay;
struct canvas *fcv;
@@ -193,112 +171,95 @@ int startat;
if (!lay)
return;
if (display)
{
LoadLayout(0, &D_canvas);
fcv = D_forecv;
DupLayoutCv(&D_canvas, &lay->lay_canvas, 1);
lay->lay_forecv = D_forecv;
D_forecv = fcv;
D_layout = lay;
}
if (display) {
LoadLayout(0, &D_canvas);
fcv = D_forecv;
DupLayoutCv(&D_canvas, &lay->lay_canvas, 1);
lay->lay_forecv = D_forecv;
D_forecv = fcv;
D_layout = lay;
}
else
{
layout_attach = lay;
}
layout_attach = lay;
lay->lay_autosave = 1;
}
static char *
AddLayoutsInfo(buf, len, where)
char *buf;
int len;
int where;
static char *AddLayoutsInfo(char *buf, int len, int where)
{
char *s, *ss, *t;
struct layout *p, **pp;
int l;
s = ss = buf;
for (pp = laytab; pp < laytab + MAXLAY; pp++)
{
if (pp - laytab == where && ss == buf)
ss = s;
if ((p = *pp) == 0)
continue;
t = p->lay_title;
l = strlen(t);
if (l > 20)
l = 20;
if (s - buf + l > len - 24)
break;
if (s > buf)
{
*s++ = ' ';
*s++ = ' ';
}
sprintf(s, "%d", p->lay_number);
if (p->lay_number == where)
ss = s;
s += strlen(s);
if (display && p == D_layout)
*s++ = '*';
for (pp = laytab; pp < laytab + MAXLAY; pp++) {
if (pp - laytab == where && ss == buf)
ss = s;
if ((p = *pp) == 0)
continue;
t = p->lay_title;
l = strlen(t);
if (l > 20)
l = 20;
if (s - buf + l > len - 24)
break;
if (s > buf) {
*s++ = ' ';
*s++ = ' ';
strncpy(s, t, l);
s += l;
}
sprintf(s, "%d", p->lay_number);
if (p->lay_number == where)
ss = s;
s += strlen(s);
if (display && p == D_layout)
*s++ = '*';
*s++ = ' ';
strncpy(s, t, l);
s += l;
}
*s = 0;
return ss;
}
void
ShowLayouts(where)
int where;
void ShowLayouts(int where)
{
char buf[1024];
char *s, *ss;
if (!display)
return;
if (!layouts)
{
Msg(0, "No layouts defined\n");
return;
}
if (!layouts) {
Msg(0, "No layouts defined\n");
return;
}
if (where == -1 && D_layout)
where = D_layout->lay_number;
ss = AddLayoutsInfo(buf, sizeof(buf), where);
s = buf + strlen(buf);
if (ss - buf > D_width / 2)
{
ss -= D_width / 2;
if (s - ss < D_width)
{
ss = s - D_width;
if (ss < buf)
ss = buf;
}
if (ss - buf > D_width / 2) {
ss -= D_width / 2;
if (s - ss < D_width) {
ss = s - D_width;
if (ss < buf)
ss = buf;
}
}
else
ss = buf;
Msg(0, "%s", ss);
}
void
RemoveLayout(lay)
struct layout *lay;
void RemoveLayout(struct layout *lay)
{
struct layout **layp = &layouts;
for (; *layp; layp = &(*layp)->lay_next)
{
if (*layp == lay)
{
*layp = lay->lay_next;
break;
}
for (; *layp; layp = &(*layp)->lay_next) {
if (*layp == lay) {
*layp = lay->lay_next;
break;
}
}
laytab[lay->lay_number] = (struct layout *)0;
if (display && D_layout == lay)
@@ -316,61 +277,47 @@ struct layout *lay;
Activate(0);
}
void
UpdateLayoutCanvas(cv, wi)
struct canvas *cv;
struct win *wi;
void UpdateLayoutCanvas(struct canvas *cv, struct win * wi)
{
for (; cv; cv = cv->c_slnext)
{
if (cv->c_layer && Layer2Window(cv->c_layer) == wi)
{
/* A simplistic version of SetCanvasWindow(cv, 0) */
struct layer *l = cv->c_layer;
cv->c_layer = 0;
if (l->l_cvlist == 0 && (wi == 0 || l != wi->w_savelayer))
KillLayerChain(l);
l = &cv->c_blank;
l->l_data = 0;
if (l->l_cvlist != cv)
{
cv->c_lnext = l->l_cvlist;
l->l_cvlist = cv;
}
cv->c_layer = l;
/* Do not end here. Multiple canvases can have the same window */
}
for (; cv; cv = cv->c_slnext) {
if (cv->c_layer && Layer2Window(cv->c_layer) == wi) {
/* A simplistic version of SetCanvasWindow(cv, 0) */
struct layer *l = cv->c_layer;
cv->c_layer = 0;
if (l->l_cvlist == 0 && (wi == 0 || l != wi->w_savelayer))
KillLayerChain(l);
if (cv->c_slperp)
UpdateLayoutCanvas(cv->c_slperp, wi);
l = &cv->c_blank;
l->l_data = 0;
if (l->l_cvlist != cv) {
cv->c_lnext = l->l_cvlist;
l->l_cvlist = cv;
}
cv->c_layer = l;
/* Do not end here. Multiple canvases can have the same window */
}
if (cv->c_slperp)
UpdateLayoutCanvas(cv->c_slperp, wi);
}
}
static void
dump_canvas(cv, file)
struct canvas *cv;
FILE *file;
static void dump_canvas(struct canvas *cv, FILE *file)
{
struct canvas *c;
for (c = cv->c_slperp; c && c->c_slnext; c = c->c_slnext)
{
fprintf(file, "split%s\n", c->c_slorient == SLICE_HORI ? " -v" : "");
}
for (c = cv->c_slperp; c; c = c->c_slnext)
{
if (c->c_slperp)
dump_canvas(c, file);
else
fprintf(file, "focus\n");
}
fprintf(file, "split%s\n", c->c_slorient == SLICE_HORI ? " -v" : "");
for (c = cv->c_slperp; c; c = c->c_slnext) {
if (c->c_slperp)
dump_canvas(c, file);
else
fprintf(file, "focus\n");
}
}
int
LayoutDumpCanvas(cv, filename)
struct canvas *cv;
char *filename;
int LayoutDumpCanvas(struct canvas *cv, char *filename)
{
FILE *file = secfopen(filename, "a");
if (!file)
@@ -380,17 +327,13 @@ char *filename;
return 1;
}
void RenameLayout(layout, name)
struct layout *layout;
const char *name;
void RenameLayout(struct layout *layout, const char *name)
{
free(layout->lay_title);
layout->lay_title = SaveStr(name);
}
int RenumberLayout(layout, number)
struct layout *layout;
int number;
int RenumberLayout(struct layout *layout, int number)
{
int old;
struct layout *lay;

View File

@@ -30,7 +30,6 @@
#include <sys/stat.h> /* struct stat */
#include <fcntl.h> /* O_WRONLY for logfile_reopen */
#include "config.h"
#include "screen.h"
#include "extern.h"
@@ -42,19 +41,15 @@ static int stolen_logfile __P((struct logfile *));
static struct logfile *logroot = NULL;
static void
changed_logfile(l)
struct logfile *l;
{
static void changed_logfile(struct logfile *l) {
struct stat o, *s = l->st;
if (fstat(fileno(l->fp), &o) < 0) /* get trouble later */
if (fstat(fileno(l->fp), &o) < 0) /* get trouble later */
return;
if (o.st_size > s->st_size) /* aha, appended text */
{
s->st_size = o.st_size; /* this should have changed */
s->st_mtime = o.st_mtime; /* only size and mtime */
}
if (o.st_size > s->st_size) { /* aha, appended text */
s->st_size = o.st_size; /* this should have changed */
s->st_mtime = o.st_mtime; /* only size and mtime */
}
}
/*
@@ -65,10 +60,7 @@ struct logfile *l;
*
* need_fd is returned on success, else -1 is returned.
*/
int
lf_move_fd(fd, need_fd)
int need_fd, fd;
{
int lf_move_fd(int fd, int need_fd) {
int r = -1;
if (fd == need_fd)
@@ -79,22 +71,15 @@ int need_fd, fd;
return r;
}
static int
logfile_reopen(name, wantfd, l)
char *name;
int wantfd;
struct logfile *l;
{
static int logfile_reopen(char *name, int wantfd, struct logfile *l) {
int got_fd;
close(wantfd);
if (((got_fd = open(name, O_WRONLY | O_CREAT | O_APPEND, 0666)) < 0) ||
lf_move_fd(got_fd, wantfd) < 0)
{
logfclose(l);
debug1("logfile_reopen: failed for %s\n", name);
return -1;
}
if (((got_fd = open(name, O_WRONLY | O_CREAT | O_APPEND, 0666)) < 0) || lf_move_fd(got_fd, wantfd) < 0) {
logfclose(l);
debug1("logfile_reopen: failed for %s\n", name);
return -1;
}
changed_logfile(l);
debug2("logfile_reopen: %d = %s\n", wantfd, name);
return 0;
@@ -114,8 +99,7 @@ static int (* lf_reopen_fn)() = logfile_reopen;
* reinitialise itself.
* d) return 0 on success.
*/
void
logreopen_register(fn)
void logreopen_register(fn)
int (*fn) __P((char *, int, struct logfile *));
{
lf_reopen_fn = fn ? fn : logfile_reopen;
@@ -127,46 +111,37 @@ int (*fn) __P((char *, int, struct logfile *));
* The l->st structure initialised by logfopen is updated
* on every call.
*/
static int
stolen_logfile(l)
struct logfile *l;
{
static int stolen_logfile(struct logfile *l) {
struct stat o, *s = l->st;
o = *s;
if (fstat(fileno(l->fp), s) < 0) /* remember that stat failed */
if (fstat(fileno(l->fp), s) < 0) /* remember that stat failed */
s->st_ino = s->st_dev = 0;
ASSERT(s == l->st);
if (!o.st_dev && !o.st_ino) /* nothing to compare with */
if (!o.st_dev && !o.st_ino) /* nothing to compare with */
return 0;
if ((!s->st_dev && !s->st_ino) || /* stat failed, that's new! */
!s->st_nlink || /* red alert: file unlinked */
(s->st_size < o.st_size) || /* file truncated */
(s->st_mtime != o.st_mtime) || /* file modified */
((s->st_ctime != o.st_ctime) && /* file changed (moved) */
!(s->st_mtime == s->st_ctime && /* and it was not a change */
o.st_ctime < s->st_ctime))) /* due to delayed nfs write */
{
debug1("stolen_logfile: %s stolen!\n", l->name);
debug3("st_dev %d, st_ino %d, st_nlink %d\n",
(int)s->st_dev, (int)s->st_ino, (int)s->st_nlink);
debug2("s->st_size %d, o.st_size %d\n", (int)s->st_size, (int)o.st_size);
debug2("s->st_mtime %d, o.st_mtime %d\n",
(int)s->st_mtime, (int)o.st_mtime);
debug2("s->st_ctime %d, o.st_ctime %d\n",
(int)s->st_ctime, (int)o.st_ctime);
return -1;
}
if ((!s->st_dev && !s->st_ino) || /* stat failed, that's new! */
!s->st_nlink || /* red alert: file unlinked */
(s->st_size < o.st_size) || /* file truncated */
(s->st_mtime != o.st_mtime) || /* file modified */
((s->st_ctime != o.st_ctime) && /* file changed (moved) */
!(s->st_mtime == s->st_ctime && /* and it was not a change */
o.st_ctime < s->st_ctime))) /* due to delayed nfs write */
{
debug1("stolen_logfile: %s stolen!\n", l->name);
debug3("st_dev %d, st_ino %d, st_nlink %d\n", (int)s->st_dev, (int)s->st_ino, (int)s->st_nlink);
debug2("s->st_size %d, o.st_size %d\n", (int)s->st_size, (int)o.st_size);
debug2("s->st_mtime %d, o.st_mtime %d\n", (int)s->st_mtime, (int)o.st_mtime);
debug2("s->st_ctime %d, o.st_ctime %d\n", (int)s->st_ctime, (int)o.st_ctime);
return -1;
}
debug1("stolen_logfile: %s o.k.\n", l->name);
return 0;
}
static struct logfile *
lookup_logfile(name)
char *name;
{
static struct logfile *lookup_logfile(char *name) {
struct logfile *l;
for (l = logroot; l; l = l->next)
@@ -175,35 +150,28 @@ char *name;
return NULL;
}
struct logfile *
logfopen(name, fp)
char *name;
FILE *fp;
{
struct logfile *logfopen(char *name, FILE *fp) {
struct logfile *l;
if (!fp)
{
if (!(l = lookup_logfile(name)))
return NULL;
l->opencount++;
return l;
}
if (!fp) {
if (!(l = lookup_logfile(name)))
return NULL;
l->opencount++;
return l;
}
if (!(l = (struct logfile *)malloc(sizeof(struct logfile))))
return NULL;
if (!(l->st = (struct stat *)malloc(sizeof(struct stat))))
{
free((char *)l);
return NULL;
}
if (!(l->st = (struct stat *)malloc(sizeof(struct stat)))) {
free((char *)l);
return NULL;
}
if (!(l->name = SaveStr(name)))
{
free((char *)l->st);
free((char *)l);
return NULL;
}
if (!(l->name = SaveStr(name))) {
free((char *)l->st);
free((char *)l);
return NULL;
}
l->fp = fp;
l->opencount = 1;
l->writecount = 0;
@@ -215,19 +183,13 @@ FILE *fp;
return l;
}
int
islogfile(name)
char *name;
{
int islogfile(char *name) {
if (!name)
return logroot ? 1 : 0;
return lookup_logfile(name) ? 1 : 0;
}
int
logfclose(l)
struct logfile *l;
{
int logfclose(struct logfile *l) {
struct logfile **lp;
for (lp = &logroot; *lp; lp = &(*lp)->next)
@@ -254,12 +216,7 @@ struct logfile *l;
* write and flush both *should* check the file's stat, if it disappeared
* or changed, re-open it.
*/
int
logfwrite(l, buf, n)
struct logfile *l;
char *buf;
int n;
{
int logfwrite(struct logfile *l, char *buf, int n) {
int r;
if (stolen_logfile(l) && lf_reopen_fn(l->name, fileno(l->fp), l))
@@ -271,29 +228,24 @@ int n;
return r;
}
int
logfflush(l)
struct logfile *l;
{
int logfflush(struct logfile *l) {
int r = 0;
if (!l)
for (l = logroot; l; l = l->next)
{
if (stolen_logfile(l) && lf_reopen_fn(l->name, fileno(l->fp), l))
return -1;
r |= fflush(l->fp);
l->flushcount++;
changed_logfile(l);
}
else
{
for (l = logroot; l; l = l->next) {
if (stolen_logfile(l) && lf_reopen_fn(l->name, fileno(l->fp), l))
return -1;
r = fflush(l->fp);
return -1;
r |= fflush(l->fp);
l->flushcount++;
changed_logfile(l);
}
else {
if (stolen_logfile(l) && lf_reopen_fn(l->name, fileno(l->fp), l))
return -1;
r = fflush(l->fp);
l->flushcount++;
changed_logfile(l);
}
return r;
}