{{{  comments
; generate new filenames when filing a fold if given filename is already used.
; new filenames are generated by expanding the filename with (1..500).
; unfiling removes not the files.
}}}
@if-using not(FF_UNI)
  @use (FF_UNI)
  {{{  libs
  {{{F fun/add_txt
  :::F fun/add_txt
  }}}
  {{{F fun/error
  :::F fun/error
  }}}
  }}}
  {{{  vars
  ( defvar ( ffu ffc ffnumb ) )
  }}}
  {{{  go_filename
  (defmac go_filename (
    beginning-of-line
    repeat 5 (forward-character)
    while not(or(test-char " ,test-char ". ,test-end-line)) (forward-character)
  ))
  }}}
  {{{  toggle-file-fold_unique
  (deffun toggle-file-fold-unique (
    if test-fold-line (
      {{{  fold should be filed
      set-counter ffu store-pos
      go_filename
      set-counter ffnumb store-pos
      set-counter ffc -1
      do (
        {{{  try one ``number''
        if counter>0 ffc (
          add_txt set-counter ffc +(ffc -1)
        ) else (
          set-counter ffc 500
        ) fi
        toggle-file-fold
        if test-fold-line ("N newline-and-indent) fi
        }}}
      ) while and(test-fold-line,counter>0 ffc)
      goto-counter ffnumb
      while not(or(test-char ".,test-char "  ,test-end-line))
        (delete-character)
      goto-counter ffu
      if test-fold-line (failed) fi
      }}}
    ) else (
      toggle-file-fold
    ) fi
  ))
  }}}
  {{{  undeclare
  ( undeclare ( ffu ffc ffnumb go_filename ) )
  }}}
@fi
