[logos] Include @interface/@implementation/@end in the file depth mapping, as dropping the prelude inside an @implementation of @interface will cause broken output.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@524 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[rules] Allow for multiple subproject instances in one directory. They can be referenced in an enclosing instance with "directory:name". Leaving off :name links all subprojects in that directory.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@525 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[rules] Add build rules for all preprocessed versions of source formats we support, as well as .cp/.cxx/.c++, and .s/.S (assembly).

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@526 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Add support for &%orig, which evaluates to a pointer to the original function for the enclosing hook.

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@527 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Include a class name and selector in warnings/errors regarding %orig.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@528 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] @protocol opens a new depth block, but I completely forgot about it. Thanks ashikase!

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@529 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Try to be more intelligent about format characters: Only use %@ for id or unknown pointers. Use %p for struct pointers and -- for structures, and use %p for all double-indirect pointers. Use 0x%x for everything we do not understand, with a forced cast to unsigned int.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@530 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Give NIC an overhaul: add support for NICTar templates, which are tar files containing NIC/control. Load all templates before showing the list (so that we might parse their names.) Break NIC1 functionality out into NICBase for NICTar's sake.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@531 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Convert all existing templates to NICTars.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@532 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[denicify] Add the package constraint when denicifying so we get every file.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@533 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Break each type of 'nic content' into its own subclass of NIC::NICType, and give those subclasses control over their creation rules. Each one starts out as a NIC::NICType and differentiates when more data is known. This allows us to constrain more than just files ('constrain' and 'constrain file' are now synonymous.) NICTar gets its own types so that they may keep references to their Archive::Tar::File instances.

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@534 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Use or instead of ||, and properly return values from all 'create' methods.

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@535 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Whoops, making 'file ' optional in constrain broke because I didn't update the positional refs.

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@536 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] If theos exists in the parent project and is NOT a symlink, symlink to it (instead of ignoring it.)

From: Dustin L. Howett <dustin.howett@airbnb.com>

git-svn-id: http://svn.howett.net/svn/theos/trunk@537 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Add prebuild/postbuild script support to NICTar. NIC variables are passed into the script via @@VAR@@ replacement or in the $NIC_<VAR> environment variables, with the environment variables being preferred.

Also, look up files in the NICTar's Archive::Tar in a centralized place.

From: Dustin L. Howett <dustin.howett@airbnb.com>


git-svn-id: http://svn.howett.net/svn/theos/trunk@538 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Allow %log() to have extra arguments, which get logged based on the type to which they're cast (example: "%log((void *)pointertype, @"Awesome")" becomes %p, %@.) This also makes %log() legal. Make Logos::Util::smartSplit return () for undef inputs, as well.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@539 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[logos] Wrap custom log arguments in (), so that the custom log format generator doesn't break complex types.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@540 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Use Archive::Tar::File's full_path instead of name, as some archives have 'prefix' paths for which we weren't accounting.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@541 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Allow passing in a pre-existing Archive::Tar to NICTar->new().

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@542 4410221e-0ddf-4ce3-99c0-2db6c0dbc727
[nic] Rewrite nicify to generate and lint-check NICTar-format templates. Additionally, it now writes its own output file and does not require redirection.

From: Dustin L. Howett <dustin@howett.net>

git-svn-id: http://svn.howett.net/svn/theos/trunk@543 4410221e-0ddf-4ce3-99c0-2db6c0dbc727