/*

/ Program   : endwith.sas
/ Version   : 1.0
/ Author    : Roland Rashleigh-Berry
/ Date      : 30-Jul-2007
/ Purpose   : Function-style macro to ensure any non-null value assigned to a
/             macro variable ends with the specified character.
/ SubMacros : none
/ Notes     : This was originally written to ensure that directories assigned to
/             macro variables end with the directory slash, if indeed anything
/             had been assigned. This is difficult to do in open code and so
/             this macro was written.
/ Usage     : filename outfile "%endwith(&outdir,/)output.txt";
/ 
/===============================================================================
/ PARAMETERS:
/-------name------- -------------------------description------------------------
/ value             (pos) Contents of macro variable.
/ char              (pos) Character to make sure it ends with if not null.
/===============================================================================
/ AMENDMENT HISTORY:
/ init --date-- mod-id ----------------------description------------------------
/ rrb  13Feb07         "macro called" message added
/ rrb  30Jul07         Header tidy
/===============================================================================
/ This is public domain software. No guarantee as to suitability or accuracy is
/ given or implied. User uses this code entirely at their own risk.
/=============================================================================*/

%put MACRO CALLED: endwith v1.0;

%macro endwith(value,char); 
%if %length(&value) %then %do; 
  %if "%qsubstr(&value,%length(&value),1)" NE "&char" %then %do; 
%superq(value)&char 
  %end; 
  %else %do; 
&value 
  %end; 
%end; 
%else %do; 
&value 
%end; 
%mend;