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