These additions allow the GUI package manager to use `pkg-catalog-upload-local`
instead of having a its own copy of the same opertation. Not surprisingly,
with two copies of the code, the `pkg/lib` copy was missing support for tags.
1) Indentation rules to to count paren(indentation):
Return number of parenthesis till the outmost “@“ annotation,
if the there is "[", we check if it has "@" right after if and at the
same line, if so, we add the number of characters between "[" and
the beginning of the line it appears
2) line push back rules:
we do not push back lines begin with “@“ that
a) has keyworld "codeblock" or "verbatim" after
b) contains “[” and multiple lines before the closing “]”
The package dependency checking process was already gathering all the
reelvant information, or nearly all of it, so it's relatively cheap to
add the checks.
The bug was a kind of typo: using `&` where `%` was intended to
implement a counter wraparound.
This bug is an even more likely candidate to be resopnsible for the
occassional crashes from the DrRacket easter-egg test.
Avoids recording original syntaxes with a source or position
of #f, since these are usually intermediate syntax pairs that
don't correspond to actual source syntax.
For example, in a (#%module-begin . rst) in a submodule, the
underlying pair may contain an identifier and a cdr that is a
syntax object. That cdr will have #f source and position and also
does not correspond to any source syntax.
Leaving such syntax objects in the table means there are spurious
hits later when a syntax object with an unknown source location
is looked up.
Closes PR 14389
free-identifier=? expects, contrary to documentation, a syntax?, causing
contract errors. (and (identifier? ...) ...) solves this.
[Since the function is called only on fully expanded forms, it doesn't
look like the `identifier?` tests can ever fail, but it still seems
sensible to have them. -Matthew]
Use `call-with-` instead of `with-`, since it's a function instead
of a syntactic form. (This is a weak convention, but one to try to
follow with new functions and forms.)
Fix up the contracts and change the documentation to match the
usual style.
Create the temporary directory in `(find-system-path 'temp-dir)`
instead of the current directory.