Comment by Gibbon1

Comment by Gibbon1 a day ago

4 replies

I'm with you, don't do crap like that. Always return a valid object.

  email_t theEmail = parseEmail(untrustedInput);
  if (theEmail.error != PARSE_OK) {
    return error;
  }
mrkeen a day ago

This is validate.

You made an email-or-error type and named it email_t and then manually checked it.

PDV returns an non-error-email type from the check method.

  • ykonstant 18 hours ago

    I don't understand; what is your suggested solution?

    • mrkeen 17 hours ago

      I'm not smart enough to suggest a fix here, I'm just pointing out that this article is not the PdV from the well known article.

      But I can spot when code is doing exactly what the cited article says not to do,

      This line is the "validate" in the expression "parse, don't validate":

        if (theEmail.error != PARSE_OK)
      
      You might like it, but that's not my business. Maybe this C article should have been "parse, then validate".

      You'd be better off reading the original: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va...

    • teo_zero 16 hours ago

      parseEmail() should either return a valid email, or not return at all; whether that means panic, exit, or jump to an error handler... is left to the implementer