• L
    libvirt,logging: cleanup VIR_XXX0() · b65f37a4
    Lai Jiangshan 提交于
    These VIR_XXXX0 APIs make us confused, use the non-0-suffix APIs instead.
    
    How do these coversions works? The magic is using the gcc extension of ##.
    When __VA_ARGS__ is empty, "##" will swallow the "," in "fmt," to
    avoid compile error.
    
    example: origin				after CPP
    	high_level_api("%d", a_int)	low_level_api("%d", a_int)
    	high_level_api("a  string")	low_level_api("a  string")
    
    About 400 conversions.
    
    8 special conversions:
    VIR_XXXX0("") -> VIR_XXXX("msg") (avoid empty format) 2 conversions
    VIR_XXXX0(string_literal_with_%) -> VIR_XXXX(%->%%) 0 conversions
    VIR_XXXX0(non_string_literal) -> VIR_XXXX("%s", non_string_literal)
      (for security) 6 conversions
    Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
    b65f37a4
uml_driver.c 61.0 KB