Explicitly enable printing of warnings

This commit is contained in:
Bert 2011-01-30 16:39:16 +01:00
parent e2d9463375
commit 03bfe1015e
8 changed files with 31 additions and 20 deletions

@ -35,6 +35,7 @@ sxiv supports the following command-line options:
-p pixelize, i.e. turn off image anti-aliasing -p pixelize, i.e. turn off image anti-aliasing
-s scale all images to fit into window -s scale all images to fit into window
-v print version information and exit -v print version information and exit
-W enable printing of warnings
-w WIDTHxHEIGHT -w WIDTHxHEIGHT
set window width to WIDTH and height to HEIGHT set window width to WIDTH and height to HEIGHT
(if HEIGHT is omitted, height is also set to WIDTH) (if HEIGHT is omitted, height is also set to WIDTH)

@ -23,7 +23,6 @@
#include "sxiv.h" #include "sxiv.h"
#include "image.h" #include "image.h"
#include "options.h"
int zl_cnt; int zl_cnt;
float zoom_min; float zoom_min;

1
main.c

@ -26,7 +26,6 @@
#include "sxiv.h" #include "sxiv.h"
#include "image.h" #include "image.h"
#include "options.h"
#include "window.h" #include "window.h"
void on_keypress(XEvent*); void on_keypress(XEvent*);

@ -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 [-dfhpsvZ] [-w WIDTH[xHEIGHT]] [-z ZOOM] FILES...\n"); printf("usage: sxiv [-dfhpsvWZ] [-w WIDTH[xHEIGHT]] [-z ZOOM] FILES...\n");
} }
void print_version() { void print_version() {
@ -50,7 +50,9 @@ void parse_options(int argc, char **argv) {
_options.winh = h = 0; _options.winh = h = 0;
_options.fullscreen = 0; _options.fullscreen = 0;
while ((opt = getopt(argc, argv, "dfhpsvw:Zz:")) != -1) { _options.warn = 0;
while ((opt = getopt(argc, argv, "dfhpsvWw:Zz:")) != -1) {
switch (opt) { switch (opt) {
case '?': case '?':
print_usage(); print_usage();
@ -73,6 +75,9 @@ void parse_options(int argc, char **argv) {
case 'v': case 'v':
print_version(); print_version();
exit(0); exit(0);
case 'W':
_options.warn = 1;
break;
case 'w': case 'w':
if (!sscanf(optarg, "%hux%hu", &w, &h)) { if (!sscanf(optarg, "%hux%hu", &w, &h)) {
fprintf(stderr, "sxiv: invalid argument for option -w: %s\n", fprintf(stderr, "sxiv: invalid argument for option -w: %s\n",

@ -32,6 +32,8 @@ typedef struct options_s {
int winw; int winw;
int winh; int winh;
unsigned char fullscreen; unsigned char fullscreen;
unsigned char warn;
} options_t; } options_t;
extern const options_t *options; extern const options_t *options;

5
sxiv.1

@ -3,7 +3,7 @@
sxiv \- Simple (or small or suckless) X Image Viewer sxiv \- Simple (or small or suckless) X Image Viewer
.SH SYNOPSIS .SH SYNOPSIS
.B sxiv .B sxiv
.RB [ \-dfhpsvZ ] .RB [ \-dfhpsvWZ ]
.RB [ \-w .RB [ \-w
.IB WIDTH x HEIGHT .IB WIDTH x HEIGHT
] ]
@ -36,6 +36,9 @@ Scale all images to fit into window.
.B \-v .B \-v
Print version information to standard output and exit. Print version information to standard output and exit.
.TP .TP
.B \-W
Enable printing of warnings to standard error stream.
.TP
.BI "\-w " WIDTH x HEIGHT .BI "\-w " WIDTH x HEIGHT
Set window width to Set window width to
.I WIDTH .I WIDTH

3
sxiv.h

@ -20,6 +20,7 @@
#define SXIV_H #define SXIV_H
#include "config.h" #include "config.h"
#include "options.h"
#define ABS(a) ((a) < 0 ? (-(a)) : (a)) #define ABS(a) ((a) < 0 ? (-(a)) : (a))
#define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MIN(a,b) ((a) < (b) ? (a) : (b))
@ -27,9 +28,11 @@
#define WARN(...) \ #define WARN(...) \
do { \ do { \
if (options->warn) { \
fprintf(stderr, "sxiv: %s:%d: warning: ", __FILE__, __LINE__); \ fprintf(stderr, "sxiv: %s:%d: warning: ", __FILE__, __LINE__); \
fprintf(stderr, __VA_ARGS__); \ fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n"); \ fprintf(stderr, "\n"); \
} \
} while (0) } while (0)
#define DIE(...) \ #define DIE(...) \

@ -24,7 +24,6 @@
#include <X11/cursorfont.h> #include <X11/cursorfont.h>
#include "sxiv.h" #include "sxiv.h"
#include "options.h"
#include "window.h" #include "window.h"
static Cursor arrow; static Cursor arrow;