.#2 JED_COMMENT_COLUMN" 40 / custom_variable& , Comment_Data+ + Struct_Type * Assoc_Type!, Comment_Data, & _NARGS. - get_mode_name/b* ( modename+( modename , Comment_Data ( modename 0 assoc_key_exists. $ NULLw/b ( modename , Comment_Data!w 0 get_comment_info,* $ cbeg $ cend % flags+ & _NARGS! 3A. - get_mode_name/c* $ mode+$ mode* ! s+$ cbeg$ cend% flags& column! 4! s $ cbeg ! s$ cbeg $ cend ! s$ cend % flags ! s% flags 2 JED_COMMENT_COLUMN ! s& column ! s $ mode , Comment_Data0 set_comment_info,* & column+ & _NARGS! 1A. - get_mode_name/c* $ mode+$ mode* ! s+ $ mode 0 get_comment_info! s ! s $ NULLB. & column ! s& column/c2 set_comment_column,* ! m+ - get_mode_name! m* ! s+ ! m 0 get_comment_info ! s ! s $ NULLA.F No comment strings defined for %s mode ! m & verror/c ! sw1 _get_comment_info,* ( beg_mark ( end_mark+* * max_column+ ( end_mark . goto_user_mark + what_column* max_column ( beg_mark . goto_user_mark. # eol 0 create_user_mark ( end_mark@.v/c + bskip_white + what_column * max_column?. + what_column* max_column/c ) go_down_1/e * max_columnw2 compute_max_column,! 1 , check_region. ( pop_spot * pop_mark_0/n* $ info+ 1 _get_comment_info$ info* $ cbeg+ $ info"$ cbeg$ cbeg* $ cend+ $ info"$ cend$ cend* % flags+ $ info"% flags% flags* ( end_mark+ 0 create_user_mark( end_mark 7 exchange_point_and_mark* ( beg_mark+ 0 create_user_mark( beg_mark* * indent_col+! 1* indent_col ( beg_mark ( end_markA. ( pop_spot * pop_mark_0 $ cbeg & insert $ cend & insertw/c % flags! 1F. + what_column* indent_col + bskip_white $ bolp.! 1* indent_col/b/.$ \n * skip_chars + bskip_white $ bolp. * skip_white 0 create_user_mark ( end_mark=. + what_column* indent_col ( beg_mark . move_user_mark/c/c/d ( end_mark . goto_user_mark$ \n + bskip_chars* - ok_to_pad_end+! 0- ok_to_pad_end 0 create_user_mark ( beg_mark?. ( end_mark . move_user_mark * pop_mark_0 ) push_mark * skip_white $ eolp- ok_to_pad_end/c* * max_column+ ! 0* max_column % flags! 2F $ cend & strlenC. ( beg_mark ( end_mark 2 compute_max_column $ cbeg & strlen9* max_column/c ( beg_mark . goto_user_mark $ cbeg & insert # bol 0 narrow_to_region. , widen_region ( pop_spot/n # eol * max_column. $ trim + what_column * max_column=. * max_column + goto_column/c/c $ cend & insert* 3 comment_blank_lines+ % flags! 4F3 comment_blank_lines. 3 comment_blank_lines. & down_1.v/b * skip_white $ eolp. * indent_col + goto_column/c/.$ \n * skip_chars $ eobp.v/c/d + what_column * indent_col@. * indent_col + goto_column/c $ cbeg & insert # eol * max_column. 0 create_user_mark ( end_mark= - ok_to_pad_endD. $ trim + what_column * max_column=. * max_column + goto_column/c/c/c $ cend & insert/e , widen_region ( pop_spot. comment_region,! 1 , check_region* ( end_mark+ 0 create_user_mark( end_mark 7 exchange_point_and_mark 0 narrow_to_region. , widen_region ( pop_spot/n* $ info+ 1 _get_comment_info$ info* $ cbeg+ $ info"$ cbeg $ cbeg* $ cend+ $ info"$ cend$ cend* ' do_trim+ $ info"% flags! 2F' do_trim* ( len_cbeg+ $ cbeg & strlen( len_cbeg* ( len_cend+ $ cend & strlen( len_cend. $ cbeg % ffind.u/b ( len_cbeg $ deln # eol $ cend % bfind.u/b ( len_cend $ deln ' do_trim. * skip_white $ eolp. $ trim/c/c/. & down_1/k , widen_region ( pop_spot0 uncomment_region,. ( pop_spot/n - push_spot_bol - push_mark_eol . comment_region ( pop_spot, comment_line,. ( pop_spot/n - push_spot_bol - push_mark_eol 0 uncomment_region ( pop_spot. uncomment_line," -1" -1 / prefix_argumentB. 8 uncomment_region_or_linew/c % markp. . comment_regionw/c* ! s+ 1 _get_comment_info! s ) push_spot . bol_skip_white ! s"$ cbeg * looking_at. ( pop_spot . uncomment_line w/c ( pop_spot , comment_line6 comment_region_or_line, % markp. 0 uncomment_region/. . uncomment_line/d8 uncomment_region_or_line$ html% ! 0 0 set_comment_info$ sgml% ! 0 0 set_comment_info' docbook% ! 0 0 set_comment_info! C# /* # */! 0 0 set_comment_info% SLang" %  ! 0 0 set_comment_info# TeX" %  ! 0 0 set_comment_info% LaTeX" %  ! 0 0 set_comment_info" SH" #  ! 0 0 set_comment_info& matlab" #  ! 0 0 set_comment_info$ perl" #  ! 0 0 set_comment_info' Fortran" C  ! 0 0 set_comment_info$ TPas" { " }! 0 0 set_comment_info# PHP# //  ! 0 0 set_comment_info$ java# /* # */! 0 0 set_comment_info( comments ' provide