rem: if (!isint (argv[op - 1], &l))
add: if (!is_int (argv[op - 1], &l))
context: binary_operator (void){  register int op;  struct stat stat_buf, stat_spare;  intmax_t l, r;  int value;  /* Are the left and right integer expressions of the form '-l string'? */  int l_is_l, r_is_l;  if (strcmp (argv[pos], "-l") == 0)    {      l_is_l = 1;      op = pos + 2;      /* Make sure that OP is still a valid binary operator. */      if ((op >= argc - 1) || (binop (argv[op]) == 0))	test_syntax_error (_("%s: binary operator expected\n"), argv[op]);      advance (0);    }  else    {      l_is_l = 0;      op = pos + 1;    }  if ((op < argc - 2) && (strcmp (argv[op + 1], "-l") == 0))    {      r_is_l = 1;      advance (0);    }  else    r_is_l = 0;  if (argv[op][0] == '-')    {      /* check for eq, nt, and stuff */      switch (argv[op][1])	{	default:	  break;	case 'l':	  if (argv[op][2] == 't' && !argv[op][3])	    {	      /* lt */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -lt"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -lt"));		}	      pos += 3;	      return (TRUE == (l < r));	    }	  if (argv[op][2] == 'e' && !argv[op][3])	    {	      /* le */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -le"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -le"));		}	      pos += 3;	      return (TRUE == (l <= r));	    }	  break;	case 'g':	  if (argv[op][2] == 't' && !argv[op][3])	    {	      /* gt integer greater than */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -gt"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -gt"));		}	      pos += 3;	      return (TRUE == (l > r));	    }	  if (argv[op][2] == 'e' && !argv[op][3])	    {	      /* ge - integer greater than or equal to */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -ge"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -ge"));		}	      pos += 3;	      return (TRUE == (l >= r));	    }	  break;	case 'n':	  if (argv[op][2] == 't' && !argv[op][3])	    {	      /* nt - newer than */	      time_t lt, rt;	      int le, re;	      pos += 3;	      if (l_is_l || r_is_l)		test_syntax_error (_("-nt does not accept -l\n"), NULL);	      le = age_of (argv[op - 1], &lt);	      re = age_of (argv[op + 1], &rt);	      return le > re || (le == 0 && lt > rt);	    }	  if (argv[op][2] == 'e' && !argv[op][3])	    {	      /* ne - integer not equal */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -ne"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -ne"));		}	      pos += 3;	      return (TRUE == (l != r));	    }	  break;	case 'e':	  if (argv[op][2] == 'q' && !argv[op][3])	    {	      /* eq - integer equal */	      if (l_is_l)		l = strlen (argv[op - 1]);	      else		{		  if (!isint (argv[op - 1], &l))		    integer_expected_error (_("before -eq"));		}	      if (r_is_l)		r = strlen (argv[op + 2]);	      else		{		  if (!isint (argv[op + 1], &r))		    integer_expected_error (_("after -eq"));		}	      pos += 3;	      return (TRUE == (l == r));	    }	  if (argv[op][2] == 'f' && !argv[op][3])	    {	      /* ef - hard link? */	      pos += 3;	      if (l_is_l || r_is_l)		test_syntax_error (_("-ef does not accept -l\n"), NULL);	      if (stat (argv[op - 1], &stat_buf) < 0)		return (FALSE);	      if (stat (argv[op + 1], &stat_spare) < 0)		return (FALSE);	      return (TRUE ==		      (stat_buf.st_dev == stat_spare.st_dev &&		       stat_buf.st_ino == stat_spare.st_ino));	    }	  break;	case 'o':	  if ('t' == argv[op][2] && '\000' == argv[op][3])	    {	      /* ot - older than */	      time_t lt, rt;	      int le, re;	      pos += 3;	      if (l_is_l || r_is_l)		test_syntax_error (_("-ot does not accept -l\n"), NULL);	      le = age_of (argv[op - 1], &lt);	      re = age_of (argv[op + 1], &rt);	      return le < re || (re == 0 && lt < rt);	    }	  break;	}      test_syntax_error (_("unknown binary operator"), argv[op]);    }  if (argv[op][0] == '=' && !argv[op][1])    {      value = (strcmp (argv[pos], argv[pos + 2]) == 0);      pos += 3;      return (TRUE == value);    }  if (strcmp (argv[op], "!=") == 0)    {      value = (strcmp (argv[pos], argv[pos + 2]) != 0);      pos += 3;      return (TRUE == value);    }  /* Not reached.  */  abort ();}