diff --git a/all.sas b/all.sas
index dc9ab92..a2af201 100644
--- a/all.sas
+++ b/all.sas
@@ -1066,7 +1066,8 @@ or %index(&pgm,/tests/testteardown)
%else %if %symexist(&metavar) %then %do;
%if %length(&&&metavar)=0 %then %let user=&sysuserid;
/* sometimes SAS will add @domain extension - remove for consistency */
- %else %let user=%scan(&&&metavar,1,@);
+ /* but be sure to quote in case of usernames with commas */
+ %else %let user=%unquote(%scan(%quote(&&&metavar),1,@));
%end;
%else %let user=&sysuserid;
@@ -8640,13 +8641,13 @@ select distinct lowcase(memname)
@li mp_abort.sas
@li mp_cntlout.sas
@li mp_lockanytable.sas
+ @li mp_storediffs.sas
Related Macros
@li mddl_dc_difftable.sas
@li mddl_dc_locktable.sas
@li mp_loadformat.test.sas
@li mp_lockanytable.sas
- @li mp_storediffs.sas
@li mp_stackdiffs.sas
@@ -8898,7 +8899,8 @@ options ibufsize=&ibufsize;
%put &sysmacroname exit vars:;
%put _local_;
%end;
-%mend mp_loadformat;/**
+%mend mp_loadformat;
+/**
@file
@brief Mechanism for locking tables to prevent parallel modifications
@details Uses a control table to enable ANY table to be locked for updates
@@ -15089,7 +15091,8 @@ data _null_;
put ' %else %if %symexist(&metavar) %then %do; ';
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
- put ' %else %let user=%scan(&&&metavar,1,@); ';
+ put ' /* but be sure to quote in case of usernames with commas */ ';
+ put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
put ' %end; ';
put ' %else %let user=&sysuserid; ';
put ' ';
@@ -15310,6 +15313,7 @@ filename &fname2 clear;
%local isgone;
data _null_;
length type uri $256;
+ call missing (of _all_);
rc=metadata_resolve("omsobj:SASLibrary?@Id='&liburi'",type,uri);
call symputx('isgone',type,'l');
run;
@@ -20539,7 +20543,8 @@ data _null_;
put ' %else %if %symexist(&metavar) %then %do; ';
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
- put ' %else %let user=%scan(&&&metavar,1,@); ';
+ put ' /* but be sure to quote in case of usernames with commas */ ';
+ put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
put ' %end; ';
put ' %else %let user=&sysuserid; ';
put ' ';
diff --git a/meta/mm_createwebservice.sas b/meta/mm_createwebservice.sas
index 4b41b4f..7e54e4b 100644
--- a/meta/mm_createwebservice.sas
+++ b/meta/mm_createwebservice.sas
@@ -453,7 +453,8 @@ data _null_;
put ' %else %if %symexist(&metavar) %then %do; ';
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
- put ' %else %let user=%scan(&&&metavar,1,@); ';
+ put ' /* but be sure to quote in case of usernames with commas */ ';
+ put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
put ' %end; ';
put ' %else %let user=&sysuserid; ';
put ' ';
diff --git a/meta/mm_deletelibrary.sas b/meta/mm_deletelibrary.sas
index f400a62..a4b56a1 100644
--- a/meta/mm_deletelibrary.sas
+++ b/meta/mm_deletelibrary.sas
@@ -78,6 +78,7 @@ filename &fname2 clear;
%local isgone;
data _null_;
length type uri $256;
+ call missing (of _all_);
rc=metadata_resolve("omsobj:SASLibrary?@Id='&liburi'",type,uri);
call symputx('isgone',type,'l');
run;
diff --git a/tests/crossplatform/mp_loadformat.test.sas b/tests/crossplatform/mp_loadformat.test.sas
index 68078d3..0bde24d 100644
--- a/tests/crossplatform/mp_loadformat.test.sas
+++ b/tests/crossplatform/mp_loadformat.test.sas
@@ -78,7 +78,7 @@ run;
outds=work.test_results
)
%mp_assert(
- iftrue=(%mf_nobs(perm.audit)>7329),
+ iftrue=(%mf_nobs(perm.audit)=7329),
desc=Test 1 - audit table updated,
outds=work.test_results
)
diff --git a/viya/mv_createwebservice.sas b/viya/mv_createwebservice.sas
index 16b8601..6b73e1d 100644
--- a/viya/mv_createwebservice.sas
+++ b/viya/mv_createwebservice.sas
@@ -655,7 +655,8 @@ data _null_;
put ' %else %if %symexist(&metavar) %then %do; ';
put ' %if %length(&&&metavar)=0 %then %let user=&sysuserid; ';
put ' /* sometimes SAS will add @domain extension - remove for consistency */ ';
- put ' %else %let user=%scan(&&&metavar,1,@); ';
+ put ' /* but be sure to quote in case of usernames with commas */ ';
+ put ' %else %let user=%unquote(%scan(%quote(&&&metavar),1,@)); ';
put ' %end; ';
put ' %else %let user=&sysuserid; ';
put ' ';