minor syntax, style and README fixes
This commit is contained in:
parent
0798e82d23
commit
24762d0172
12
README.md
12
README.md
@ -1,14 +1,19 @@
|
||||
sent is a simple plaintext presentation tool.
|
||||
|
||||
sent does not need latex, libreoffice or any other fancy file format, it uses
|
||||
plaintext files and png images. Every paragraph represents a slide in the
|
||||
presentation.
|
||||
plaintext files to describe the slides and can include images via farbfeld.
|
||||
Every paragraph represents a slide in the presentation.
|
||||
|
||||
The presentation is displayed in a simple X11 window. The content of each slide
|
||||
is automatically scaled to fit the window and centered so you also don't have to
|
||||
worry about alignment. Instead you can really concentrate on the content.
|
||||
|
||||
|
||||
Dependencies
|
||||
|
||||
You need Xlib to build sent and the farbfeld[0] tools installed to use images in
|
||||
your presentations.
|
||||
|
||||
Demo
|
||||
|
||||
To get a little demo, just type
|
||||
@ -47,3 +52,6 @@ presentation file could look like this:
|
||||
Development
|
||||
|
||||
sent is developed at http://tools.suckless.org/sent
|
||||
|
||||
|
||||
0: http://git.2f30.org/farbfeld/about/
|
||||
|
23
sent.c
23
sent.c
@ -186,7 +186,7 @@ Image *ffopen(char *filename)
|
||||
tmpfd = fd;
|
||||
fd = filter(fd, bin);
|
||||
if (fd < 0)
|
||||
eprintf("could not filter %s:", filename);
|
||||
eprintf("Unable to filter %s:", filename);
|
||||
close(tmpfd);
|
||||
|
||||
if (read(fd, hdr, 16) != 16)
|
||||
@ -218,7 +218,7 @@ int ffread(Image *img)
|
||||
uint8_t opac;
|
||||
uint8_t fg_r, fg_g, fg_b, bg_r, bg_g, bg_b;
|
||||
size_t rowlen, off, nbytes;
|
||||
ssize_t r;
|
||||
ssize_t count;
|
||||
|
||||
if (!img)
|
||||
return 0;
|
||||
@ -249,10 +249,10 @@ int ffread(Image *img)
|
||||
for (off = 0, y = 0; y < img->bufheight; y++) {
|
||||
nbytes = 0;
|
||||
while (nbytes < rowlen) {
|
||||
r = read(img->fd, (char *)row + nbytes, rowlen - nbytes);
|
||||
if (r < 0)
|
||||
eprintf("read:");
|
||||
nbytes += r;
|
||||
count = read(img->fd, (char *)row + nbytes, rowlen - nbytes);
|
||||
if (count < 0)
|
||||
eprintf("Unable to read from pipe:");
|
||||
nbytes += count;
|
||||
}
|
||||
for (x = 0; x < rowlen / 2; x += 4) {
|
||||
fg_r = ntohs(row[x + 0]) / 256;
|
||||
@ -346,7 +346,7 @@ void ffdraw(Image *img)
|
||||
int xoffset = (xw.w - img->ximg->width) / 2;
|
||||
int yoffset = (xw.h - img->ximg->height) / 2;
|
||||
XPutImage(xw.dpy, xw.win, d->gc, img->ximg, 0, 0,
|
||||
xoffset, yoffset, img->ximg->width, img->ximg->height);
|
||||
xoffset, yoffset, img->ximg->width, img->ximg->height);
|
||||
XFlush(xw.dpy);
|
||||
img->state |= DRAWN;
|
||||
}
|
||||
@ -604,12 +604,13 @@ void xinit()
|
||||
resize(DisplayWidth(xw.dpy, xw.scr), DisplayHeight(xw.dpy, xw.scr));
|
||||
|
||||
xw.attrs.bit_gravity = CenterGravity;
|
||||
xw.attrs.event_mask = KeyPressMask | ExposureMask | StructureNotifyMask
|
||||
| ButtonMotionMask | ButtonPressMask;
|
||||
xw.attrs.event_mask = KeyPressMask | ExposureMask | StructureNotifyMask |
|
||||
ButtonMotionMask | ButtonPressMask;
|
||||
|
||||
xw.win = XCreateWindow(xw.dpy, XRootWindow(xw.dpy, xw.scr), 0, 0,
|
||||
xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput, xw.vis,
|
||||
CWBitGravity | CWEventMask, &xw.attrs);
|
||||
xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr),
|
||||
InputOutput, xw.vis, CWBitGravity | CWEventMask,
|
||||
&xw.attrs);
|
||||
|
||||
xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False);
|
||||
xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False);
|
||||
|
Loading…
Reference in New Issue
Block a user