On 05/09/2011 03:24 AM, Lai Jiangshan wrote:
These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs
instead.
How these coversions works? The magic is using ##.
#define high_levle_api(fmt, ...) low_levle_api(fmt, ##__VA_ARGS__)
When __VA_ARGS__ is empty, "##" will swallow the "," in
"fmt," to avoid compile error.
example: origin after CPP
high_levle_api("%d", a_int) low_levle_api("%d", a_int)
high_levle_api("a string") low_levle_api("a string")
About 400 conversions.
8 special conversions:
VIR_XXXX0("") -> VIR_XXXX(" ") (avoid empty format) 2 conversions
Yuck, that leaves trailing space. I'd rather have a real message.
VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0
conversions
Good that nothing hit this pattern, because my followup patch will
magically transform 1-arg vir_XXXX("xyz") to vir_XXXX("%s",
"xyz"), and
any doubled-up %% would thus cause a change in output.
VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s",
non_string_literal) (for security) 6 conversions
Good.
Also, cfg.mk can be simplified (hmm, we don't have any syntax-rules for
VIR_INFO, so I'll do that as a followup).
Here's what I squashed in; I'll wait to push until my followups have
been reviewed.
diff --git i/cfg.mk w/cfg.mk
index 9ee0dd0..1b60282 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -390,7 +390,6 @@ msg_gen_function += ESX_ERROR
msg_gen_function += ESX_VI_ERROR
msg_gen_function += PHYP_ERROR
msg_gen_function += VIR_ERROR
-msg_gen_function += VIR_ERROR0
msg_gen_function += VMX_ERROR
msg_gen_function += XENXS_ERROR
msg_gen_function += eventReportError
@@ -525,7 +524,7 @@ sc_copyright_format:
# Some functions/macros produce messages intended solely for developers
# and maintainers. Do not mark them for translation.
sc_prohibit_gettext_markup:
- @prohibit='\<VIR_(WARN|DEBUG)0? *\(_\(' \
+ @prohibit='\<VIR_(WARN|DEBUG) *\(_\(' \
halt='do not mark these strings for translation' \
$(_sc_search_regexp)
diff --git i/src/qemu/qemu_monitor_json.c w/src/qemu/qemu_monitor_json.c
index 126003f..047a81f 100644
--- i/src/qemu/qemu_monitor_json.c
+++ w/src/qemu/qemu_monitor_json.c
@@ -2529,7 +2529,7 @@ int qemuMonitorJSONInjectNMI(qemuMonitorPtr mon)
if (qemuMonitorJSONHasError(reply, "CommandNotFound") &&
qemuMonitorCheckHMP(mon, "inject-nmi")) {
- VIR_DEBUG0("inject-nmi command not found, trying HMP");
+ VIR_DEBUG("inject-nmi command not found, trying HMP");
ret = qemuMonitorTextInjectNMI(mon);
} else {
ret = qemuMonitorJSONCheckError(cmd, reply);
diff --git i/src/util/event.c w/src/util/event.c
index cfaffc8..11f025b 100644
--- i/src/util/event.c
+++ w/src/util/event.c
@@ -145,7 +145,7 @@ void virEventRegisterImpl(virEventAddHandleFunc
addHandle,
*/
int virEventRegisterDefaultImpl(void)
{
- VIR_DEBUG(" ");
+ VIR_DEBUG("registering default event implementation");
virResetLastError();
@@ -185,7 +185,7 @@ int virEventRegisterDefaultImpl(void)
*/
int virEventRunDefaultImpl(void)
{
- VIR_DEBUG(" ");
+ VIR_DEBUG("running default event implementation");
virResetLastError();
if (virEventPollRunOnce() < 0) {
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org