Skip to content
  • Thomas Haller's avatar
    all: don't use gchar/gshort/gint/glong but C types · e1c7a2b5
    Thomas Haller authored
    We commonly don't use the glib typedefs for char/short/int/long,
    but their C types directly.
    
        $ git grep '\<g\(char\|short\|int\|long\|float\|double\)\>' | wc -l
        587
        $ git grep '\<\(char\|short\|int\|long\|float\|double\)\>' | wc -l
        21114
    
    One could argue that using the glib typedefs is preferable in
    public API (of our glib based libnm library) or where it clearly
    is related to glib, like during
    
      g_object_set (obj, PROPERTY, (gint) value, NULL);
    
    However, that argument does not seem strong, because in practice we don't
    follow that argument today, and seldomly use the glib typedefs.
    Also, the style guide for this would be hard to formalize, because
    "using them where clearly related to a glib" is a very loose suggestion.
    
    Also note that glib typedefs will always just be typedefs of the
    underlying C types. There is no danger of glib changing the meaning
    of these typedefs (because that would be a major API break of glib).
    
    A simple style guide is instead: don't use these typedefs.
    
    No manual actions, I only ran the bash script:
    
      FILES=($(git ls-files '*.[hc]'))
      sed -i \
          -e 's/\<g\(char\|short\|int\|long\|float\|double\)\>\( [^ ]\)/\1\2/g' \
          -e 's/\<g\(char\|short\|int\|long\|float\|double\)\>  /\1   /g' \
          -e 's/\<g\(char\|short\|int\|long\|float\|double\)\>/\1/g' \
          "${FILES[@]}"
    e1c7a2b5