Explicitly enable printing of warnings

master
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
-s scale all images to fit into window
-v print version information and exit
-W enable printing of warnings
-w WIDTHxHEIGHT
set window width to WIDTH and height to HEIGHT
(if HEIGHT is omitted, height is also set to WIDTH)

View File

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

1
main.c
View File

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

View File

@ -29,7 +29,7 @@ options_t _options;
const options_t *options = (const options_t*) &_options;
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() {
@ -50,7 +50,9 @@ void parse_options(int argc, char **argv) {
_options.winh = h = 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) {
case '?':
print_usage();
@ -73,6 +75,9 @@ void parse_options(int argc, char **argv) {
case 'v':
print_version();
exit(0);
case 'W':
_options.warn = 1;
break;
case 'w':
if (!sscanf(optarg, "%hux%hu", &w, &h)) {
fprintf(stderr, "sxiv: invalid argument for option -w: %s\n",

View File

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

5
sxiv.1
View File

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

31
sxiv.h
View File

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

View File

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