prependLib.sas
/*
* Richard A. DeVenezia
* 2/23/2005
*/
%macro prependLib (base=, add=);
%local basePaths addPaths pos;
%let basePaths = %qsysfunc (pathname(&base));
%let addPaths = %qsysfunc (pathname(&add));
%if %length(&addPaths) = 0 %then %do;
%goto EndMacro;
%end;
%if %length(&basePaths) = 0 %then %do;
libname &base (&add);
%goto EndMacro;
%end;
%if %qsubstr(&basePaths,1,1) = %str(%() %then
%let basePaths = %substr(&basePaths,2,%eval(%length(&basePaths)-2));
%if %qsubstr (&addPaths,1,1) = %str(%() %then
%let addPaths = %substr(&addPaths,2,%eval(%length(&addPaths)-2));
%let pos = %index (&basePaths, &addPaths);
%if &pos = 0 or &pos > 2 %then %do;
libname &base (&add &base);
%end;
%else
%put &base already prepended with &add;
%EndMacro:
%mend;