.#ý2 ChangeLog_Filename0 $CHANGE_LOG$.TXTþ / custom_variableý. ChangeLog_Userý( %s <%s> , get_realname 0 get_emailaddressþ ' sprintfþ / custom_variable,* " tm # day % month $ year+ý % _timeþ ) localtime°" tmý* %d-%0d-%0d$ 1900 " tm"' tm_year9! 1 " tm"& tm_mon9 " tm"' tm_mdayþ ' sprintf‚2 get_changelog_date,* $ date+ 2 get_changelog_date°$ dateý& %s %s $ date . ChangeLog_Userþ ' sprintfw‚8 format_changelog_heading,* $ file # dir+ + getbuf_infoPP°# dirP.ý # dir 2 ChangeLog_Filenameþ & dircat °$ file! 1ý $ fileþ + file_statusA. $ filew/cýý # dir# [-]þ & dircatþ / expand_filename°# dir/eý? Unable to find a ChangeLog fileþ & verror‚5 locate_changelog_file,* # dir $ file+ + getbuf_infoPP°# dir°$ fileý $ fileþ & strlen. w/b $ file 2 ChangeLog_FilenameA. w/cý # dir $ fileþ & dircatw‚7 get_changelog_file_item,* # fun+ý/ chglog_get_itemþ 2 mode_get_mode_info°# fun # fun $ NULLB. # funM°# fun/c # fun $ NULLA. w/c # funw‚6 get_changelog_function,* ' heading+ 8 format_changelog_heading°' heading* $ file+ 7 get_changelog_file_item°$ file* ( function+ 6 get_changelog_function°( function* ) changelog+ 5 locate_changelog_file°) changelogý $ fileþ & strlen.* ! i+! 0°! i.ý ! i ) changelog!ý ! i $ file!A/.·! i/fýý ! iâá $ file!°$ file/cý ) changelogþ ) read_fileP 4 set_buffer_no_backup! 1°, WRAP_INDENTSý ' whatbufþ ' pop2buf ) text_mode # bobý ' headingþ + bol_fsearch.ý& %s\n\n ' headingþ ' vinsert # bob/b # eol* ! m+ 0 create_user_mark°! mý% \n*þ * skip_chars* 0 create_new_entry+! 1°0 create_new_entryý $ fileþ * looking_at.ýý $ fileþ & strlenþ ( go_right * _get_pointý" :þ * skip_chars * _get_pointA°0 create_new_entry/c 0 create_new_entry.ý ! mþ . goto_user_marký$ \n\nþ & insertý! 8þ * whitespaceý% * %s $ fileþ ' vinsert/.ý' ^[ ]*$þ * re_fsearch. # eob/b $ trim ' newline ' go_up_1ý! 8þ * whitespace/dý ( functionþ & strlen.ý& (%s): ( functionþ ' vinsert/. 0 create_new_entryý $ fileþ & strlenC. $ trimý" : þ & insert/c/d †4 changelog_add_change