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

View File

@ -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)

View File

@ -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
View File

@ -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*);

View File

@ -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",

View File

@ -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
View File

@ -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

31
sxiv.h
View File

@ -20,26 +20,29 @@
#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))
#define MAX(a,b) ((a) > (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b))
#define WARN(...) \ #define WARN(...) \
do { \ do { \
fprintf(stderr, "sxiv: %s:%d: warning: ", __FILE__, __LINE__); \ if (options->warn) { \
fprintf(stderr, __VA_ARGS__); \ fprintf(stderr, "sxiv: %s:%d: warning: ", __FILE__, __LINE__); \
fprintf(stderr, "\n"); \ fprintf(stderr, __VA_ARGS__); \
} while (0) fprintf(stderr, "\n"); \
} \
} while (0)
#define DIE(...) \ #define DIE(...) \
do { \ do { \
fprintf(stderr, "sxiv: %s:%d: error: ", __FILE__, __LINE__); \ fprintf(stderr, "sxiv: %s:%d: error: ", __FILE__, __LINE__); \
fprintf(stderr, __VA_ARGS__); \ fprintf(stderr, __VA_ARGS__); \
fprintf(stderr, "\n"); \ fprintf(stderr, "\n"); \
cleanup(); \ cleanup(); \
exit(1); \ exit(1); \
} while (0) } while (0)
void cleanup(); void cleanup();

View File

@ -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;