[prev in list] [next in list] [prev in thread] [next in thread]
List: lynx-dev
Subject: lynx-dev [PATCH] CTRACE comma expression
From: pg () sweng ! stortek ! com
Date: 2001-04-04 15:18:59
[Download RAW message or body]
--%--multipart-mixed-boundary-1.9592.986397539--%
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
In a recent note, Thomas Dickey said:
> Date: Wed, 4 Apr 2001 05:04:12 -0400
>
> > But I notice my comma-expression has been converted to a compound-statement.
> > Was the comma-expression too bizarre, or did it threaten portability?
>
> well (my head's not too clear right now) - iirc, the issue was related to
> whether I could ifdef-out the whole trace statement, that I noticed some
> inconsistency in the set of ifdef's and related variables and rewrote the
> whole thing.
>
I know it was conflicting with other changes in that area in dev.19. Since
that's stabilized, I'm resubmitting it.
In dev<=19, CTRACE expanded to an expression. In dev.20 it's a compound
statement. This returns it to an expression, so it should be no worse
than dev.19.
If you ifdef-out the whole trace statement, it will still work in a
statement context -- "CTRACE(( ... ));" becomes a dummy statement --
nothing is left but the ";". It will still fail in an expression
context -- "( CTRACE(( ... )), 0 )" fails for "unexpected comma".
But this would have been true at dev.19 or dev.20.
-- gil
--
StorageTek
INFORMATION made POWERFUL
--%--multipart-mixed-boundary-1.9592.986397539--%
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Description: ascii text
Content-Disposition: attachment; filename="lynx.patch.comma"
%%% Created Wed Apr 4 06:33:33 MDT 2001 by target lynx.patch. %%%
diff -bru orig/lynx2-8-4/WWW/Library/Implementation/HTUtils.h \
lynx2-8-4/WWW/Library/Implementation/HTUtils.h
--- orig/lynx2-8-4/WWW/Library/Implementation/HTUtils.h Sun Apr 1 18:51:46 2001
+++ lynx2-8-4/WWW/Library/Implementation/HTUtils.h Tue Apr 3 18:34:15 2001
@@ -498,13 +498,13 @@
#define TRACE_TRST (TRACE_bit(2))
#if defined(LY_TRACELINE)
-#define LY_SHOWWHERE fprintf( tfp, "%s: %d: ", __FILE__, LY_TRACELINE );
+#define LY_SHOWWHERE fprintf( tfp, "%s: %d: ", __FILE__, LY_TRACELINE ),
#else
#define LY_SHOWWHERE /* nothing */
#endif
-#define CTRACE(p) if (TRACE) { LY_SHOWWHERE fprintf p; }
-#define CTRACE2(m,p) if (m) { LY_SHOWWHERE fprintf p; }
+#define CTRACE(p) ((TRACE) && ( LY_SHOWWHERE fprintf p ))
+#define CTRACE2(m,p) ((m) && ( LY_SHOWWHERE fprintf p ))
#define tfp TraceFP()
#define CTRACE_SLEEP(secs) if (TRACE && LYTraceLogFP == 0) sleep(secs)
#define CTRACE_FLUSH(fp) if (TRACE) fflush(fp)
--%--multipart-mixed-boundary-1.9592.986397539--%--
; To UNSUBSCRIBE: Send "unsubscribe lynx-dev" to majordomo@sig.net
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic