-STATIC UV indirect_intuit(const char *meth, const char *obj) {
- const char *s;
- int indirect = 0, quotelike = 0;
-
- for (s = meth; s < obj; ++s) {
- switch (*s) {
- case ',':
- case '(':
- case '=':
- case '\'':
- case '"':
- case '`':
- return 0;
- case '-':
- indirect = 1;
- break;
- case '>':
- if (indirect)
- return 0;
- break;
- case 'q':
- indirect = 0;
- if (quotelike == 1)
- quotelike = 2;
- break;
- case 'w':
- case 'r':
- case 'x':
- indirect = 0;
- if (quotelike != 2)
- quotelike = 0;
- break;
- default:
- indirect = 0;
- if (isSPACE(*s))
- quotelike = 1;
- else if (quotelike == 2 && !isALNUM(*s))
- return 0;
- else
- quotelike = 0;
- }
- }
-
- return 1;
-}
-