11/* 
22 *  R : A Computer Language for Statistical Data Analysis 
3-  *  Copyright (C) 1998-2024    The R Core Team. 
3+  *  Copyright (C) 1998-2025    The R Core Team. 
44 *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka 
55 * 
66 *  This program is free software; you can redistribute it and/or modify 
@@ -635,7 +635,7 @@ attribute_hidden SEXP do_options(SEXP call, SEXP op, SEXP args, SEXP rho)
635635	    else  if  (streql (CHAR (namei ), "keep.source" )) {
636636		if  (TYPEOF (argi ) !=  LGLSXP  ||  LENGTH (argi ) !=  1 )
637637		    error (_ ("invalid value for '%s'" ), CHAR (namei ));
638- 		int  k  =  asLogical (argi );
638+ 		Rboolean  k  =  asRbool (argi ,  call );
639639		R_KeepSource  =  k ;
640640		SET_VECTOR_ELT (value , i , SetOption (tag , ScalarLogical (k )));
641641	    }
@@ -782,27 +782,27 @@ attribute_hidden SEXP do_options(SEXP call, SEXP op, SEXP args, SEXP rho)
782782	    }
783783	    else  if  (streql (CHAR (namei ), "warnPartialMatchDollar" )) {
784784		check_TRUE_FALSE (argi , CHAR (namei ));
785- 		R_warn_partial_match_dollar  =  LOGICAL (argi )[ 0 ] ;
785+ 		R_warn_partial_match_dollar  =  asRbool (argi ,  call ) ;
786786		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
787787	    }
788788	    else  if  (streql (CHAR (namei ), "warnPartialMatchArgs" )) {
789789		check_TRUE_FALSE (argi , CHAR (namei ));
790- 		R_warn_partial_match_args  =  LOGICAL (argi )[ 0 ] ;
790+ 		R_warn_partial_match_args  =  asRbool (argi ,  call ) ;
791791		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
792792	    }
793793	    else  if  (streql (CHAR (namei ), "warnPartialMatchAttr" )) {
794794		check_TRUE_FALSE (argi , CHAR (namei ));
795- 		R_warn_partial_match_attr  =  LOGICAL (argi )[ 0 ] ;
795+ 		R_warn_partial_match_attr  =  asRbool (argi ,  call ) ;
796796		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
797797	    }
798798	    else  if  (streql (CHAR (namei ), "showWarnCalls" )) {
799799		check_TRUE_FALSE (argi , CHAR (namei ));
800- 		R_ShowWarnCalls  =  LOGICAL (argi )[ 0 ] ;
800+ 		R_ShowWarnCalls  =  asRbool (argi ,  call ) ;
801801		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
802802	    }
803803	    else  if  (streql (CHAR (namei ), "showErrorCalls" )) {
804804		check_TRUE_FALSE (argi , CHAR (namei ));
805- 		R_ShowErrorCalls  =  LOGICAL (argi )[ 0 ] ;
805+ 		R_ShowErrorCalls  =  asRbool (argi ,  call ) ;
806806		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
807807	    }
808808	    else  if  (streql (CHAR (namei ), "showNCalls" )) {
@@ -817,12 +817,12 @@ attribute_hidden SEXP do_options(SEXP call, SEXP op, SEXP args, SEXP rho)
817817	    }
818818	    else  if  (streql (CHAR (namei ), "browserNLdisabled" )) {
819819		check_TRUE_FALSE (argi , CHAR (namei ));
820- 		R_DisableNLinBrowser  =  LOGICAL (argi )[ 0 ] ;
820+ 		R_DisableNLinBrowser  =  asRbool (argi ,  call ) ;
821821		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
822822	    }
823823	    else  if  (streql (CHAR (namei ), "CBoundsCheck" )) {
824824		check_TRUE_FALSE (argi , CHAR (namei ));
825- 		R_CBoundsCheck  =  LOGICAL (argi )[ 0 ] ;
825+ 		R_CBoundsCheck  =  asRbool (argi ,  call ) ;
826826		SET_VECTOR_ELT (value , i , SetOption (tag , argi ));
827827	    }
828828	    else  if  (streql (CHAR (namei ), "matprod" )) {
@@ -894,7 +894,7 @@ attribute_hidden SEXP do_options(SEXP call, SEXP op, SEXP args, SEXP rho)
894894	    else  if  (streql (CHAR (namei ), "verbose" )) {
895895		if  (TYPEOF (argi ) !=  LGLSXP  ||  LENGTH (argi ) !=  1 )
896896		    error (_ ("invalid value for '%s'" ), CHAR (namei ));
897- 		int  k  =  asLogical (argi );
897+ 		Rboolean  k  =  asRbool (argi ,  call );
898898		R_Verbose  =  k ;
899899		SET_VECTOR_ELT (value , i , SetOption (tag , ScalarLogical (k )));
900900	    }
0 commit comments