Download prependLib.sas prependLib.sasSubmit a comment

/*
 * 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;