Pārlūkot izejas kodu

Added -w cmdline option

master
Bert pirms 14 gadiem
vecāks
revīzija
17e2a795bb
5 mainītis faili ar 46 papildinājumiem un 10 dzēšanām
  1. +4
    -2
      README.md
  2. +23
    -2
      options.c
  3. +2
    -0
      options.h
  4. +14
    -0
      sxiv.1
  5. +3
    -6
      window.c

+ 4
- 2
README.md Parādīt failu

@@ -28,8 +28,10 @@ check and change them, so that they fit your needs.


Usage Usage
----- -----
sxiv has no useful command line options yet, but they will be added in the next sxiv supports the following command-line options:
releases. Right now, it simply displays all files given on the command line. -w WIDTHxHEIGHT set window width to WIDTH and height to HEIGHT
(if HEIGHT is omitted, height is also set to WIDTH)


Use the following keys to control sxiv: Use the following keys to control sxiv:




+ 23
- 2
options.c Parādīt failu

@@ -29,7 +29,7 @@ options_t _options;
const options_t *options = (const options_t*) &_options; const options_t *options = (const options_t*) &_options;


void print_usage() { void print_usage() {
printf("usage: sxiv [-hv] FILES...\n"); printf("usage: sxiv [-hv] [-w WIDTH[xHEIGHT]] FILES...\n");
} }


void print_version() { void print_version() {
@@ -38,9 +38,13 @@ void print_version() {
} }


void parse_options(int argc, char **argv) { void parse_options(int argc, char **argv) {
unsigned short w, h;
int opt; int opt;


while ((opt = getopt(argc, argv, "hv")) != -1) { _options.winw = w = 0;
_options.winh = h = 0;

while ((opt = getopt(argc, argv, "hvw:")) != -1) {
switch (opt) { switch (opt) {
case '?': case '?':
print_usage(); print_usage();
@@ -51,9 +55,26 @@ void parse_options(int argc, char **argv) {
case 'v': case 'v':
print_version(); print_version();
exit(0); exit(0);
case 'w':
if (!sscanf(optarg, "%hux%hu", &w, &h)) {
fprintf(stderr, "sxiv: invalid argument for option -w: %s\n",
optarg);
exit(1);
} else {
_options.winw = (int) w;
_options.winh = (int) h;
}
break;
} }
} }


if (!_options.winw) {
_options.winw = WIN_WIDTH;
_options.winh = WIN_HEIGHT;
} else if (!_options.winh) {
_options.winh = _options.winw;
}

_options.filenames = (const char**) argv + optind; _options.filenames = (const char**) argv + optind;
_options.filecnt = argc - optind; _options.filecnt = argc - optind;
} }

+ 2
- 0
options.h Parādīt failu

@@ -22,6 +22,8 @@
typedef struct options_s { typedef struct options_s {
const char **filenames; const char **filenames;
int filecnt; int filecnt;
int winw;
int winh;
} options_t; } options_t;


extern const options_t *options; extern const options_t *options;


+ 14
- 0
sxiv.1 Parādīt failu

@@ -4,6 +4,10 @@ sxiv \- Simple (or small or suckless) X Image Viewer
.SH SYNOPSIS .SH SYNOPSIS
.B sxiv .B sxiv
.RB [ \-hv ] .RB [ \-hv ]
[
.B \-w
.IB WIDTH x HEIGHT
]
.IR FILE ... .IR FILE ...
.SH DESCRIPTION .SH DESCRIPTION
sxiv is a simple image viewer for X. It only has the most basic features sxiv is a simple image viewer for X. It only has the most basic features
@@ -18,6 +22,16 @@ Print brief usage information to standard output and exit.
.TP .TP
.B \-v .B \-v
Print version information to standard output and exit. Print version information to standard output and exit.
.TP
.BI "\-w " WIDTH x HEIGHT
Set window width to
.I WIDTH
and height to
.IR HEIGHT .
If
.I HEIGHT
is omitted, height is also set to
.IR WIDTH .
.SH KEYBOARD COMMANDS .SH KEYBOARD COMMANDS
.SS General .SS General
.TP .TP


+ 3
- 6
window.c Parādīt failu

@@ -23,6 +23,7 @@
#include <X11/Xutil.h> #include <X11/Xutil.h>


#include "sxiv.h" #include "sxiv.h"
#include "options.h"
#include "window.h" #include "window.h"


GC bgc; GC bgc;
@@ -53,12 +54,8 @@ void win_open(win_t *win) {
win->bgcol = bgcol.pixel; win->bgcol = bgcol.pixel;
win->pm = 0; win->pm = 0;


win->w = WIN_WIDTH; win->w = MIN(options->winw, e->scrw);
win->h = WIN_HEIGHT; win->h = MIN(options->winh, e->scrh);
if (win->w > e->scrw)
win->w = e->scrw;
if (win->h > e->scrh)
win->h = e->scrh;
win->x = (e->scrw - win->w) / 2; win->x = (e->scrw - win->w) / 2;
win->y = (e->scrh - win->h) / 2; win->y = (e->scrh - win->h) / 2;




||||||
x
 
000:0
Notiek ielāde…
Atcelt
Saglabāt