title: use isdigit() macro to parse command line
body: <p>I have the following code to read an argument from the command line. If the string is in this form hw:1,0 I want to break.</p>
  
  <pre><code>gboolean parse_one_option (gint opt, const gchar * arg, GError ** err)
  {
      switch (opt) {
      case DEVICE:
          if (!strncmp(arg, "hw:", 3) &amp;&amp; isdigit(arg[3]) &amp;&amp; arg[4] == ',' &amp;&amp; isdigit(arg[5])) {
              char *device = g_strdup (arg);
              break;
          break;
  </code></pre>
  
  <p>The compiler gives me a warning:</p>
  
  <pre><code>warning: implicit declaration of function 'isdigit' is invalid in C99 [-Wimplicit-function-declaration]
                      if (!strncmp(arg, "hw:", 3) &amp;&amp; isdigit(arg[3]) &amp;&amp; arg[4] == ',' &amp;&amp; isdigit(arg[5])) {
                                                     ^
  </code></pre>
  
  <p>and another question:</p>
  
  <p>Is correct to use g_strdup in combination with GOptionContext</p>