Fix printstr's len parameter width

We often pass syscall params and other long-sized values
as printstr(len). Truncating them to int may be a bad thing.

* defs.h: Change len parameter's type from int to long in
string_quote and printstr function declarations.
* util.c (string_quote): Special-case only len==-1, not all len<0.
(printstr): Likewise.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/defs.h b/defs.h
index 62f35b4..3ccd8d5 100644
--- a/defs.h
+++ b/defs.h
@@ -526,7 +526,7 @@
 extern const char *xlookup(const struct xlat *, int);
 
 extern int string_to_uint(const char *str);
-extern int string_quote(const char *, char *, int, int);
+extern int string_quote(const char *, char *, long, int);
 
 #if HAVE_LONG_LONG
 /* _l refers to the lower numbered u_arg,
@@ -550,7 +550,7 @@
 extern const char *sprintflags(const char *, const struct xlat *, int);
 extern void dumpiov(struct tcb *, int, long);
 extern void dumpstr(struct tcb *, long, int);
-extern void printstr(struct tcb *, long, int);
+extern void printstr(struct tcb *, long, long);
 extern void printnum(struct tcb *, long, const char *);
 extern void printnum_int(struct tcb *, long, const char *);
 extern void printpath(struct tcb *, long);