       debug(line)
 
     # Skip things that are clearly not file names, though they may trigger false positives
-    if line.length>0 && (line.slice(0,5)=="File:" || line.slice(0,8)=="Package:" || line.slice(0,15)=="Document Class:") || (line.slice(0,9)=="LaTeX2e <")
+    if line.length > 0 and (
+      line.slice(0,5) == "File:" or
+      line.slice(0,8) == "Package:" or
+      line.slice(0,11) == "Dictionary:" or
+      line.slice(0,15) == "Document Class:"
+    ) or line.slice(0,9) == "LaTeX2e <" or line.match(assignment_rx)
       continue
 
     # Are we done? Get rid of extra spaces, just in case (we may have extended a line, etc.)

  file_useless1_rx = /\{\"?(?:\.|\.\.\/)*[^\.]+\.[^\{\}]*\"?\}(.*)/
  # Useless file #2: <filename.ext>; capture subsequent text
  file_useless2_rx = /<\"?(?:\.|\.\.\/)*[^\.]+\.[^>]*\"?>(.*)/
  pagenum_begin_rx = /\s*\[\d*(.*)/
  line_rx = /^l\.(\d+)\s(.*)/    # l.nn <text>
  warning_rx = /^(.*?) Warning: (.+)/ # Warnings, first line

          # HEURISTIC: if extra line begins with "Package:" "File:" "Document Class:",
          # or other "well-known markers",
          # we just had a long file name, so do not add
          if extralen > 0 and (
            extra.slice(0,5) == "File:" or
            extra.slice(0,8) == "Package:" or
            extra.slice(0,11) == "Dictionary:" or
            extra.slice(0,15) == "Document Class:"
          ) or extra.slice(0,9) == "LaTeX2e <" or extra.match(assignment_rx)
            debug("Found File: and friends, or LaTeX2e, or assignment_rx match")
            extend_line = false
            # no need to recycle extra, as it's nothing we are interested in
