Way for macro to know it's indentation in source?

[email protected] Mon, 08 May 2017 10:00:30 -0500
Newsgroups gmane.comp.gnu.m4.general
Message-ID <[email protected]>
Might there be a way for a macro to know the number of
spaces to the left of itself on the line that the macro appears in the source?

--
To preserve indentation , my work around is to pass in
the number spaces that the macro output should be indented;
would be nice to automate.

--
thanks,
Tom

--
Example workaround (sorry, an overly messy example):

md_dnl The number of spaces to indent is passed in as $1.

m4_changequote(`[<{', `}>]')
m4_changecom(`#<{',`}>#')

m4_define(_ED_spaces, [<{m4_format(%[<{$1}>]s, [<{ }>])}>])                                    
                                                                                               
m4_define(_SH_cmd_subst_assign, [<{m4_dnl                                                      
_ED_spaces([<{$1}>])# errexit workaround. errexit in foo() breaks in: x=$(foo 1 2 3)           
_ED_spaces([<{$1}>])_SH_cmd_subst_assign_tmpf=$(mktemp ~/tmp/$2[<{.XXXXX}>])                   
_ED_spaces([<{$1}>])$3 $4 > $_SH_cmd_subst_assign_tmpf                                         
_ED_spaces([<{$1}>])$2=$(< $_SH_cmd_subst_assign_tmpf)                                         
_ED_spaces([<{$1}>])rm -f $_SH_cmd_subst_assign_tmpf                                           
_ED_spaces([<{$1}>])unset _SH_cmd_subst_assign_tmpf}>]m4_dnl                                   
)                                                                                              
                                                                                               
    #<{                                                                                        
                                                                                               
    $ _m42 <<< '_SH_cmd_subst_assign([<{4}>],[<{rem_cfg_dir}>], [<{rem_cfg_dir}>], [<{-a asd}>])'
        # errexit workaround. errexit in foo() breaks in: x=$(foo 1 2 3)                       
        _SH_cmd_subst_assign_tmpf=$(mktemp ~/tmp/rem_cfg_dir.XXXXX)                            
        rem_cfg_dir -a asd > $_SH_cmd_subst_assign_tmpf                                        
        rem_cfg_dir=$(< $_SH_cmd_subst_assign_tmpf)                                            
        rm -f $_SH_cmd_subst_assign_tmpf                                                       
        unset _SH_cmd_subst_assign_tmpf                                                        
                                                                                               
    }>#