Okay, I seem to be having trouble passing a simple variable through to another variable in a function. I don't see what I'm doing wrong here. Why is passing the variable with a string converted to nil, but passing the raw strings remain unchanged?
;; Main Procedure
(defun C:Debug01(/ dirPath sResult)
    ;; Pulls and shows directory of current file
    (setq dirPath (getvar 'dwgprefix))
    (princ (strcat "\n \n" dirPath "\n \n"))
    ;; Basic Function
    (setq sResult (fcnBasic "Message 1" dirfile "Message 3" "Title"))
    (princ (strcat " \nResulting output : " sResult "\n "))
    (princ)
)
;; A Basic Function
(defun fcnBasic (message1 message2 message3 main / sReturn)
    ;; Displaying values
    (princ (type message1)) (princ (strcat " : " message1 "\n"))
    (princ (type message2)) (princ (strcat " : " message2 "\n")) ;; Message 2 should equal "C:\Users\Garrettb\Documents" with a type of STR.
    (princ (type message3)) (princ (strcat " : " message3 "\n"))
    (princ (type main))     (princ (strcat " : " main "\n"))
    ;; Returning a value
    (setq sReturn message2)
    (return sReturn)
)

 
                        
In line:
You pass variable
dirfilewhich is not initialized in functionC:Debug01. Maye somewhere is, I don't know. You set value of variabledirPathwhich is not the same asdirfile;)