File ltrace.trunk-r61.patch of Package ltrace
------------------------------------------------------------------------
r61 | ianw-guest | 2006-08-07 03:56:56 +0000 (Mon, 07 Aug 2006) | 2 lines
Changed paths:
M /ltrace/trunk/ChangeLog
M /ltrace/trunk/display_args.c
M /ltrace/trunk/etc/ltrace.conf
M /ltrace/trunk/ltrace.h
M /ltrace/trunk/read_config_file.c
M /ltrace/trunk/testsuite/ltrace.main/parameters-lib.c
M /ltrace/trunk/testsuite/ltrace.main/parameters.c
M /ltrace/trunk/testsuite/ltrace.main/parameters.conf
M /ltrace/trunk/testsuite/ltrace.main/parameters.exp
short, ushort and float types
------------------------------------------------------------------------
---
ChangeLog | 8 ++++++++
display_args.c | 9 +++++++++
etc/ltrace.conf | 6 ++++--
ltrace.h | 3 +++
read_config_file.c | 6 ++++++
testsuite/ltrace.main/parameters-lib.c | 15 +++++++++++++++
testsuite/ltrace.main/parameters.c | 9 +++++++++
testsuite/ltrace.main/parameters.conf | 3 +++
testsuite/ltrace.main/parameters.exp | 8 ++++++++
9 files changed, 65 insertions(+), 2 deletions(-)
Index: read_config_file.c
===================================================================
--- read_config_file.c.orig
+++ read_config_file.c
@@ -29,6 +29,9 @@ static struct list_of_pt_t {
"ulong", ARGTYPE_ULONG}, {
"octal", ARGTYPE_OCTAL}, {
"char", ARGTYPE_CHAR}, {
+ "short", ARGTYPE_SHORT}, {
+ "ushort", ARGTYPE_USHORT}, {
+ "float", ARGTYPE_FLOAT}, {
"addr", ARGTYPE_ADDR}, {
"file", ARGTYPE_FILE}, {
"format", ARGTYPE_FORMAT}, {
@@ -46,6 +49,9 @@ static arg_type_info arg_type_singletons
{ ARGTYPE_ULONG },
{ ARGTYPE_OCTAL },
{ ARGTYPE_CHAR },
+ { ARGTYPE_SHORT },
+ { ARGTYPE_USHORT },
+ { ARGTYPE_FLOAT },
{ ARGTYPE_ADDR },
{ ARGTYPE_FILE },
{ ARGTYPE_FORMAT },
Index: display_args.c
===================================================================
--- display_args.c.orig
+++ display_args.c
@@ -91,6 +91,15 @@ int display_value(enum tof type, struct
tmp += display_char(value == -1 ? value : (char) value);
tmp += fprintf(output, "'");
return tmp;
+ case ARGTYPE_SHORT:
+ return fprintf(output, "%hd", (short) value);
+ case ARGTYPE_USHORT:
+ return fprintf(output, "%hu", (unsigned short) value);
+ case ARGTYPE_FLOAT: {
+ union { long l; float f; } cvt;
+ cvt.l = value;
+ return fprintf(output, "%f", cvt.f);
+ }
case ARGTYPE_ADDR:
if (!value)
return fprintf(output, "NULL");
Index: ChangeLog
===================================================================
--- ChangeLog.orig
+++ ChangeLog
@@ -4,6 +4,14 @@
testsuite/ltrace.main/parameters-lib.c,
testsuite/ltrace.main/parameters.c,
testsuite/ltrace.main/parameters.conf,
+ testsuite/ltrace.main/parameters.exp: short, ushort and float types
+
+2006-08-07 Steve Fink <sphink@gmail.com>
+
+ * display_args.c, etc/ltrace.conf, ltrace.h, read_config_file.c,
+ testsuite/ltrace.main/parameters-lib.c,
+ testsuite/ltrace.main/parameters.c,
+ testsuite/ltrace.main/parameters.conf,
testsuite/ltrace.main/parameters.exp: implement enumerated parameters
2006-08-07 Steve Fink <sphink@gmail.com>
Index: testsuite/ltrace.main/parameters.c
===================================================================
--- testsuite/ltrace.main/parameters.c.orig
+++ testsuite/ltrace.main/parameters.c
@@ -19,6 +19,9 @@ int func_strlen(char*);
void func_strfixed(char*);
void func_ppp(int***);
void func_stringp(char**);
+void func_short(short, short);
+void func_ushort(unsigned short, unsigned short);
+void func_float(float, float);
typedef enum {
RED,
@@ -59,4 +62,10 @@ main ()
func_stringp(&s);
func_enum(BLUE);
+
+ func_short(-8, -9);
+ func_ushort(33, 34);
+ func_float(3.4, -3.4);
+
+ return 0;
}
Index: testsuite/ltrace.main/parameters.conf
===================================================================
--- testsuite/ltrace.main/parameters.conf.orig
+++ testsuite/ltrace.main/parameters.conf
@@ -6,3 +6,6 @@ void func_strfixed(string[4])
void func_ppp(int***)
void func_stringp(string*)
void func_enum(enum (RED=0,GREEN=1,BLUE=2,CHARTREUSE=3,PETUNIA=4))
+void func_short(short,short)
+void func_ushort(ushort, ushort)
+void func_float(float,float)
Index: testsuite/ltrace.main/parameters-lib.c
===================================================================
--- testsuite/ltrace.main/parameters-lib.c.orig
+++ testsuite/ltrace.main/parameters-lib.c
@@ -41,3 +41,18 @@ void func_enum(int x)
{
printf("enum: %d\n", x);
}
+
+void func_short(short x1, short x2)
+{
+ printf("short: %hd %hd\n", x1, x2);
+}
+
+void func_ushort(unsigned short x1, unsigned short x2)
+{
+ printf("ushort: %hu %hu\n", x1, x2);
+}
+
+void func_float(float f1, float f2)
+{
+ printf("%f %f\n", f1, f2);
+}
Index: testsuite/ltrace.main/parameters.exp
===================================================================
--- testsuite/ltrace.main/parameters.exp.orig
+++ testsuite/ltrace.main/parameters.exp
@@ -52,3 +52,11 @@ set pattern "func_stringp(\\\"Dude\\\")"
ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
set pattern "func_enum(BLUE)"
ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
+set pattern "func_short(-8, -9)"
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
+set pattern "func_ushort(33, 34)"
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
+set pattern "func_float(3.40*, -3.40*)"
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
+set pattern "exited (status 0)"
+ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern 1
Index: ltrace.h
===================================================================
--- ltrace.h.orig
+++ ltrace.h
@@ -37,6 +37,9 @@ enum arg_type {
ARGTYPE_ULONG,
ARGTYPE_OCTAL,
ARGTYPE_CHAR,
+ ARGTYPE_SHORT,
+ ARGTYPE_USHORT,
+ ARGTYPE_FLOAT,
ARGTYPE_ADDR,
ARGTYPE_FILE,
ARGTYPE_FORMAT, /* printf-like format */
Index: etc/ltrace.conf
===================================================================
--- etc/ltrace.conf.orig
+++ etc/ltrace.conf
@@ -14,6 +14,8 @@
; ulong == (unsigned long)
; octal == (unsigned) [written in octal]
; char
+; short == (short)
+; ushort == (unsigned short)
; addr == (void *) [unsigned, written in hexa]
; file == (FILE *) [TODO]
; format == ((const char *), ...) [printf() like] [TODO]
@@ -154,8 +156,8 @@ addr getservbyport(int, string);
addr getservent(void);
void herror(string);
string hstrerror(int);
-;int rcmd(addr, ushort, string, string, string, addr); FIXME implement ushort
-;int rcmd_af(addr, ushort, string, string, string, addr, int); FIXME implement ushort
+int rcmd(addr, ushort, string, string, string, addr);
+int rcmd_af(addr, ushort, string, string, string, addr, int);
int rexec(addr, int, string, string, string, addr);
int rexec_af(addr, int, string, string, string, addr, int);
int rresvport (addr);