This is needed to allow K&R to be removed and struct prototypes to
exist that have fully declared (argument) types.
It maybe necessary (in the future) to have public types and module
internal type in separate header files, but it is unclear if such a
clear split exists.
Copyright plate taken from extflat.h
EFint.t has an ugly ifndef _DATABASE_H that is very include order
dependent (brittle to failure) so this moves the (struct ArrayInfo) type
definition into its own file, which has standard ifndef once file guards.
So include file order no longer matters.
Copyright plate taken from database.h.in
While AppImage attempts to be a more portable way of running
applications across linux installations, sometime is maybe necessary
to run inside docker.
So examples are provided, which also provides testing regime to
validate how the AppImage can be quickly tested.
Removes NOFILE warning (by default) when running under TCL8 but
still allows user to override with "export MAGIC_ULIMIT_NOFILE="
before running docker with extra argument '-e MAGIC_ULIMIT_NOFILE'.
For example the message string here.
$ git tag --list -n 8.3.536
8.3.536 "Tagging version 8.3.536"
This could contain additional information relating to the authenticity
and signing info should that feature be used. Which is useful to see
with the release info.
Also git_previous_tag resolution is allowed to fail to an empty string.
This is considered external public API for the tiles module, so
while internal magic code might inline all call sites internally
for performance the DSO (tclmagic.so) should always provide the
API symbol even if it does not use it.
This affects EL7 (gcc 4.8.5) and older:
#define __GNUC_GNU_INLINE__ 1
This does not affect newer GCC from EL8 (gcc 8.5.0) and later has:
#define __GNUC_STDC_INLINE__ 1
This can be seen as:
./Magic-8.3.536-x86_64-EL7.AppImage
/tmp/.mount_Magic-FDdbKA/bin/wish: symbol lookup error: /tmp/.mount_Magic-FDdbKA/lib/magic/tcl/tclmagic.so: undefined symbol: TiFree
This fixes the oversight introduced around commit f8ef715608
that all layer types passed to a single "angles" statement in the
tech file are mutually non-interacting. That is, "angles allm1 45"
will check angles on edges between metal1 and space, but not edges
between metal1 and via (which makes sense, given that a via is an
area into which to place contact cuts, and its edge is not a
physical boundary).
Guided by CodeQL static code analyser.
FileMayNotBeClosed.ql
FileMayNeverBeClosed.ql
Multiple paths exist that seems to be equivalent, some of those
paths handled the error path, some of them didn't.
CodeQL will still report a concern (instead of multiple concerns)
so this has been commented to clarify when the libz handle setup
is successful, the ownership of the 'fd' changed.
PIN entry in a DEF file when read by "def read". Previously,
"PLACED" and "FIXED" were handled, but "COVER" was missed. Magic
treats all three the same way.
changed the behavior from selecting subcells if they are unexpanded
to selecting subcells regardless of the expansion state. The
change was short-sighted and the implementation hard to use. There
is a need, I think, for a selection method that effectively
unexpands instances, selects everything, and re-expands afterward.
But it's not clear if it is better to select all touching instances
or instances inside the box area; maybe only interacting
instances (instances with non-space content inside the box).
Regardless, it needs more thought, and meanwhile, the original
behavior works better.
The situation is due to the difference for tags with message / annotation:
$ git tag -l -n1 8.3.534
8.3.534 "Tagging version 8.3.534"
$ git show-ref -s -d refs/tags/8.3.534
4426cc859e1ec8b6ee1a refs/tags/8.3.534^{}
$ git rev-list -n1 refs/tags/8.3.534
1ec8b6ee1a
Use of rev-lsit will always get the commit ID we expect to see for
the workflow, so we allow either of the SHA above to match at the
point of failure.
Manhattan tiles. After splitting a non-Manhattan tile crossing
a search area to paint, the routine was automatically merging
tiles to the right. This is incorrect for tiles inside the search
area, as it can cause the search algorithm to miss unvisited tiles
whose origins are to the left of the split tile, resulting in part
of the area not getting painted.
Removes the shell serialisation `for .. in ..` expression
This provides another significant speed up, after */Depend was made
parallel. x3+ speedup over -j1.
The platform /usr/bin/sed does this:
/usr/bin/sed -e "/#/D" -e "/ \//s/ \/.*\.h//" -e "/ \\\/D" -i Depend$PPID.tmp
sed: -I or -i may not be used with stdin
But a filename was specified, so the error should be file does not exist