Zelphir Kaltstahl <zelphirkaltst...@posteo.de> writes: >>> + "Expand :var header arguments given as VARS." >>> + (mapconcat >>> + (lambda (var) >>> + (format "(define %s %S)" (car var) (cdr var))) >> Is there any reason why you use %s for variable name? Previously it was >> formatted with escapes (using %S). > > That was me thinking: "The name of the variable should just be itself, not > wrapped in double quotes, because in Scheme I cannot create a variable as > (define "abc" 123)". But maybe I misunderstood %s and %S. I also do not know, > how elisp's `print' treats its arguments. Will use 2 times %S then.
The main difference between %S and %s can be demonstrated using the following: (insert (format "%s" 'symbol\#w\ spaces)) (insert (format "%S" 'symbol\#w\ spaces)) Basically, if symbol name contains funny chars, reader may need to have them escaped. %S does the escaping, while %s does not. Of course, %S escapes according to Elisp reader, not Scheme. I am not sure if Scheme syntax allows escapes in symbol names. If not, there should be no real difference. Also, `print' is the same as %S. >> Also, previous version quoted the variable value with "'". Why didn't >> you do it here? > > I am not sure I understand what you are referring to in the previous version. > Do > you mean that `print' quoted variable values with a single quote? Do you mean > this part of the previous code: > > (print `(,(car var) ',(cdr var))) > > ? Yes, but upon closer look, it should not matter. Your code will work just fine. >>> + (concat (org-babel-expand-header-arg-vars:scheme vars) body)) >> `mapconcat' you used in `org-babel-expand-header-arg-vars:scheme' does >> not add trailing newline, unlike done previously. > Am I not adding a newline? I think I do?: I meant after variable definitions. You have (concat (org-babel-scheme-expand-header-arg-vars vars) body) but string returned by `org-babel-scheme-expand-header-arg-vars' will not have final newline after the very last define. > I have a question or suggestion: > > When I save the file in Emacs, my Emacs turns all the tabs in there into > spaces. > Probably my own custom global config's choice about indentation. Could a > general > mode line thing be added to avoid that and nail down the current formatting > style, so that contributors only need to allow Emacs to run those settings > and > then not need to care about it? Currently the indentation style seems to be a > mix of tabs and spaces. This is something about your setup overriding Org mode project defaults. If you open org-mode/.dir-locals.el, you will see that we enable indent-tabs-mode. If you still do not get it enabled, you probably set indentation defaults aggressively it in your config via hooks or something similar. > And one more question: > > Does the name of the patch file matter? Git changed the name and I will > attach > it as it was created by git. Hope that's alright. Patch file name does not matter. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>