diff -Nru python-macholib-1.8/debian/changelog python-macholib-1.9/debian/changelog --- python-macholib-1.8/debian/changelog 2017-10-23 13:26:54.000000000 +0000 +++ python-macholib-1.9/debian/changelog 2017-12-05 15:42:19.000000000 +0000 @@ -1,3 +1,9 @@ +python-macholib (1.9-1) unstable; urgency=medium + + * New upstream version 1.9 + + -- IOhannes m zmölnig (Debian/GNU) Tue, 05 Dec 2017 16:42:19 +0100 + python-macholib (1.8-1) unstable; urgency=medium * Re-imported upstream version 1.8 (it's DFSG clean) Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/changelog.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/changelog.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/dyld.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/dyld.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/dylib.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/dylib.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/environment.pickle and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/environment.pickle differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/framework.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/framework.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/index.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/index.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/license.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/license.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/MachO.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/MachO.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/macho_o.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/macho_o.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/MachoOGraph.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/MachoOGraph.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/MachoOStandalone.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/MachoOStandalone.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/ptypes.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/ptypes.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/scripts.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/scripts.doctree differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/doctrees/SymbolTable.doctree and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/doctrees/SymbolTable.doctree differ diff -Nru python-macholib-1.8/doc/_build/html/.buildinfo python-macholib-1.9/doc/_build/html/.buildinfo --- python-macholib-1.8/doc/_build/html/.buildinfo 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/.buildinfo 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 83ff3a94c721e4f9967520b8d7630f14 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff -Nru python-macholib-1.8/doc/_build/html/changelog.html python-macholib-1.9/doc/_build/html/changelog.html --- python-macholib-1.8/doc/_build/html/changelog.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/changelog.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,433 @@ + + + + + + + + Release history — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Release history

+
+

macholib 1.8

+
    +
  • Use the same dependency walk logic as otool

    +

    Patch by Taras Tsugrii <ttsugrii@fb.com>

    +
  • +
  • Added support for new load commands

    +

    Patch by David Dorsey <trogdorsey@gmail.com>, +with enhancements by Ronald Oussoren.

    +
  • +
  • Fix procesing DSYM file from XCODE 6.x

    +

    Patch by HolmsBlazhey <andrey.blazhey@gmail.com>

    +
  • +
  • MachOGraph.locate(): When calling dyld_find(), use kwarg ‘loader_path’, not ‘loader’.

    +

    Patch by Stuart Berg <bergs@janelia.hhmi.org>

    +
  • +
  • Add fields to thread_command

    +

    Patch by Asger Hautop Drewsen <asgerdrewsen@gmail.com>

    +
  • +
  • Add missing ARM_V7S subtype.

    +

    Patch by “NN”

    +
  • +
  • Fix for SymbolTable

    +

    Patch by Christian Klein <chris@5711.org>

    +
  • +
  • Use first Mach-O header as the default header

    +

    Patch by Christian Klein <chris@5711.org>

    +
  • +
  • Issue #17: add LC_LOAD_UPWARD_DYLIB to _RELOCATABLE set

    +
  • +
  • Issue #16: macholib “hangs” on invalid input

    +

    Due to the use of the range function on untrusted input +the python process could hang when reading invalid input, due +to trying to construct an enormous list.

    +
  • +
  • Issue #18: Bad version parsing in macho_version_helper

    +

    The order of subfields in mach_version_helper was reversed from +reality.

    +
  • +
  • Issue #19: Fix aligment issue that prevented code signing

    +

    Patch by Brendan Simon

    +
  • +
  • Fix issue #14: Can’t pass endian argument to p_uint64.from_str

    +
  • +
+
+
+

macholib 1.7

+
    +
  • Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION

    +

    Patch by Matthias Ringwald.

    +
  • +
  • Load commands now have a “describe” method that returns more information +about the command.

    +

    Patch by David Dorsey.

    +
  • +
  • The MAGIC value in the header was always represented in the native +byte order, instead of as the value read from the binary.

    +

    Patch by David Dorsey.

    +
  • +
  • Added various new constants to “macholib.mach_o”.

    +

    Patch by David Dorsey.

    +
  • +
+
+
+

macholib 1.6.1

+
    +
  • ?
  • +
+
+
+

macholib 1.6

+
    +
  • Add support for '@loader_path‘ link command in +macholib.dyld:

    +
      +
    • Added function macholib.dyld.dyld_loader_search
    • +
    • This function is used by macholib.dyld.dyld_find, +and that function now has an new (optional) argument +with the path to the loader.
    • +
    +
  • +
  • Also add support for '@loader_path‘ to macholib.MachoGraph, +using the newly added '@loader_path‘ support in the +dyld module.

    +

    Due to this suppport the macho_standalone tool can +now rewrite binaries that contain an '@loader_path‘ load +command.

    +
  • +
+
+
+

macholib 1.5.2

+
    +
  • Issue #93: Show the name of the affected file in the exception message +for Mach-O headers that are too large to relocate.
  • +
+
+
+

macholib 1.5.1

+
    +
  • There were no ‘classifiers’ in the package metadata due to +a bug in setup.py.
  • +
+
+
+

macholib 1.5

+

macholib 1.5 is a minor feature release

+
    +
  • No longer use 2to3 to provide Python 3 support

    +

    As a side-effect of this macholib no longer supports +Python 2.5 and earlier.

    +
  • +
  • Adds suppport for some new macho load commands

    +
  • +
  • Fix for py3k problem in macho_standalone.py

    +

    Patch by Guanqun Lu.

    +
  • +
  • Fix for some issues in macho_dump.py

    +

    Patch by Nam Nguyen

    +
  • +
  • Issue #10: Fix for LC_DATA_IN_CODE linker commands, without +this fix py2app cannot build application bundles when +the source binaries have been compiled with Xcode 4.5.

    +
  • +
  • Issue #6: Fix for LC_ENCRYPTION_INFO linker commands

    +
  • +
  • Use the mach header information to print the cpu type of a +binary, instead of trying to deduce that from pointer width +and endianness.

    +

    Changed the code because of issue #6, in which a user tries to +dump a iOS binary which results in bogus output in the previous +releases.

    +
  • +
  • The mapping macholib.macho_dump.ARCH_MAP is undocumented +and no longer used by macholib itself. It will be removed +in the next release.

    +
  • +
  • The command-line tools macho_find, macho_dump and +macho_standalone are deprecated. Use “python -mmacholib” +instead. That is:

    +
    $ python -mmacholib dump /usr/bin/grep
    +
    +$ python -mmacholib find ~
    +
    +$ python -mmacholib standalone myapp.app
    +
    +
    +

    This makes it clearer which version of the tools are used.

    +
  • +
+
+
+

macholib 1.4.3

+

macholib 1.4.3 is a minor feature release

+
    +
  • Added strings for ‘x86_64’ and ‘ppc64’ to +macholib.mach_o.CPU_TYPE_NAMES.

    +
  • +
  • macho_find and macho_dump were broken in the 1.4.2 release

    +
  • +
  • added ‘macholib.util.NOT_SYSTEM_FILES’, a list of +files that aren’t system path’s even though they are +located in system locations.

    +

    Needed to work around a bug in PySide (see issue #32 in the +py2app tracker)

    +
  • +
+
+
+

macholib 1.4.2

+

macholib 1.4.2 is a minor bugfix release

+
    +
  • The support for new load commands that was added in 1.4.1 +contained a typo that caused problems on OSX 10.7 (Lion).
  • +
+
+
+

macholib 1.4.1

+

macholib 1.4.1 is a minor feature release

+

Features:

+
    +
  • Add support for a number of new MachO load commands that were added +during the lifetime of OSX 10.6: LC_LOAD_UPWARD_DYLIB, +LC_VERSION_MIN_MACOSX, LC_VERSION_MIN_IPHONEOS and +LC_FUNCTION_STARTS.
  • +
+
+
+

macholib 1.4

+

macholib 1.4 is a feature release

+

Features:

+
    +
  • Documentation is now generated using sphinx +and can be viewed at <http://packages.python.org/macholib>.

    +
  • +
  • The repository has moved to bitbucket

    +
  • +
  • There now is a testsuite

    +
  • +
  • Private functionality inside modules was renamed to +a name starting with an underscore.

    +
    +

    Note

    +

    if this change affects your code you are relying on undefined +implementation features, please stop using private functions.

    +
    +
  • +
  • The basic packable types in macholib.ptypes were renamed to better +represent the corresponding C type. The table below lists the old +an new names (the old names are still available, but are deprecated and +will be removed in a future release).

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Old nameNew name
    p_bytep_int8
    p_ubytep_uint8
    p_shortp_int16
    p_ushortp_uint16
    p_intp_int32
    p_uintp_uint32
    p_longp_int32
    p_ulongp_uint32
    p_longlongp_int64
    p_ulonglongp_uint64
    +

    Macholib.ptypes.p_ptr is no longer present as it had an unclear +definition and isn’t actually used in the codebase.

    +
  • +
+

Bug fixes:

+
    +
  • The semantics of dyld.dyld_default_search were changed a bit, +it now first searches the framework path (if appropriate) and then +the linker path, irrespective of the value of the DYLD_FALLBACK* +environment variables.

    +

    Previous versions would change the search order when those variables +was set, which is odd and doesn’t correspond with the documented +behaviour of the system dyld.

    +
  • +
  • It is once again possible to install using python2.5

    +
  • +
  • The source distribution includes all files, this was broken +due to the switch to mercurial (which confused setuptools)

    +
  • +
+
+
+

macholib 1.3

+

macholib 1.3 is a feature release.

+

Features:

+
    +
  • Experimental Python 3.x support

    +

    This version contains lightly tested support for Python 3.

    +
  • +
+
+
+

macholib 1.2.2

+

macholib 1.2.2 is a bugfix release.

+

Bug fixes:

+
    +
  • Macholib should work better with 64-bit code +(patch by Marc-Antoine Parent)
  • +
+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/dyld.html python-macholib-1.9/doc/_build/html/dyld.html --- python-macholib-1.8/doc/_build/html/dyld.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/dyld.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,268 @@ + + + + + + + + macholib.dyld — Dyld emulation — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.dyld — Dyld emulation

+

This module defines a number of functions that can be used +to emulate the functionality of the dynamic linker (dyld) +w.r.t. looking for library files and framworks.

+
+
+macholib.dyld.dyld_image_suffix([env])
+

Looks up the suffix to append to shared library and +framework names and returns this value when found. +Returns None when no suffix should be appended.

+

The env argument is a dictionary, which defaults +to os.environ.

+

See the description of DYLD_IMAGE_SUFFIX in the +manual page for dyld(1) for more information.

+
+ +
+
+macholib.dyld.dydl_framework_path([env])
+

Returns a user-specified framework search path, +or an empty list when only the default search path +should be used.

+

The env argument is a dictionary, which defaults +to os.environ.

+

See the description of DYLD_FRAMEWORK_PATH in the +manual page for dyld(1) for more information.

+
+ +
+
+macholib.dyld.dyld_library_path([env])
+

Returns a user-specified library search path, +or an empty list when only the default search path +should be used.

+

The env argument is a dictionary, which defaults +to os.environ.

+

See the description of DYLD_LIBRARY_PATH in the +manual page for dyld(1) for more information.

+
+ +
+
+macholib.dyld.dyld_fallback_framework_path([env])
+

Return a user specified list of of directories where +to look for frameworks that aren’t in their install path, +or an empty list when the default fallback path should +be used.

+

The env argument is a dictionary, which defaults +to os.environ.

+

See the description of DYLD_FALLBACK_FRAMEWORK_PATH in the +manual page for dyld(1) for more information.

+
+ +
+
+macholib.dyld.dyld_fallback_library_path([env])
+

Return a user specified list of of directories where +to look for libraries that aren’t in their install path, +or an empty list when the default fallback path should +be used.

+

The env argument is a dictionary, which defaults +to os.environ.

+

See the description of DYLD_FALLBACK_LIBRARY_PATH in the +manual page for dyld(1) for more information.

+
+ +
+ +

Yields all items in iterator, and prepents names +with the image suffix to those items when the suffix +is specified.

+

The env argument is a dictionary, which defaults +to os.environ.

+
+ +
+ +

If name is a framework name yield filesystem +paths relative to the entries in the framework +search path.

+

Always yield the filesystem paths relative to the +entries in the library search path.

+

The env argument is a dictionary, which defaults +to os.environ.

+
+ +
+ +

If name is a path starting with @executable_path/ yield +the path relative to the specified executable_path.

+

If executable_path is None nothing is yielded.

+
+ +
+ +

If name is a path starting with @loader_path/ yield +the path relative to the specified loader_path.

+

If loader_path is None nothing is yielded.

+
+ +
+ +

Yield the filesystem locations to look for a dynamic +library or framework using the default locations +used by the system dynamic linker.

+

This function will look in ~/Library/Frameworks +for frameworks, even though the system dynamic linker +doesn’t.

+

The env argument is a dictionary, which defaults +to os.environ.

+
+ +
+
+macholib.dyld.dyld_find(name[, executable_path[, env[, loader_path]]])
+

Returns the path of the requested dynamic library, +raises ValueError when the library cannot be found.

+

This function searches for the library in the same +locations and de system dynamic linker.

+

The executable_path should be the filesystem path +of the executable to which the library is linked (either +directly or indirectly).

+

The env argument is a dictionary, which defaults +to os.environ.

+

The loader_path argument is an optional filesystem path for +the object file (binary of shared library) that references +name.

+
+

Changed in version 1.6: Added the loader_path argument.

+
+
+ +
+
+macholib.dyld.framework_find(fn[, executable_path[, env]])
+

Find a framework using the same semantics as the +system dynamic linker, but will accept looser names +than the system linker.

+

This function will return a correct result for input +values like:

+
    +
  • Python
  • +
  • Python.framework
  • +
  • Python.framework/Versions/Current
  • +
+
+ +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/dylib.html python-macholib-1.9/doc/_build/html/dylib.html --- python-macholib-1.8/doc/_build/html/dylib.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/dylib.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,146 @@ + + + + + + + + macholib.dylib — Generic dylib path manipulation — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.dylib — Generic dylib path manipulation

+

This module defines a function dylib_info() that can extract +useful information from the name of a dynamic library.

+
+
+macholib.dylib.dylib_info(filename)
+

A dylib name can take one of the following four forms:

+
    +
  • Location/Name.SomeVersion_Suffix.dylib
  • +
  • Location/Name.SomeVersion.dylib
  • +
  • Location/Name_Suffix.dylib
  • +
  • Location/Name.dylib
  • +
+

Returns None if not found or a mapping equivalent to:

+
dict(
+    location='Location',
+    name='Name.SomeVersion_Suffix.dylib',
+    shortname='Name',
+    version='SomeVersion',
+    suffix='Suffix',
+)
+
+
+
+

Note

+

SomeVersion and Suffix are optional and my be None +if not present.

+
+
+ +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/framework.html python-macholib-1.9/doc/_build/html/framework.html --- python-macholib-1.8/doc/_build/html/framework.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/framework.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,148 @@ + + + + + + + + macholib.framework — Generic framework path manipulation — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.framework — Generic framework path manipulation

+

This module defines a function framework_info() that can extract +useful information from the name of a dynamic library in a framework.

+
+
+macholib.framework.framework_info(filename)
+
+

A framework name can take one of the following four forms:

+
    +
  • Location/Name.framework/Versions/SomeVersion/Name_Suffix
  • +
  • Location/Name.framework/Versions/SomeVersion/Name
  • +
  • Location/Name.framework/Name_Suffix
  • +
  • Location/Name.framework/Name
  • +
+

Returns None if not found, or a mapping equivalent to:

+
dict(
+    location='Location',
+    name='Name.framework/Versions/SomeVersion/Name_Suffix',
+    shortname='Name',
+    version='SomeVersion',
+    suffix='Suffix',
+)
+
+
+
+
+

Note

+

SomeVersion and Suffix are optional and may be None +if not present.

+
+
+ +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/genindex.html python-macholib-1.9/doc/_build/html/genindex.html --- python-macholib-1.8/doc/_build/html/genindex.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/genindex.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,262 @@ + + + + + + + + + Index — macholib 1.8 documentation + + + + + + + + + + + + + + +
+
+
+
+ + +

Index

+ +
+ B + | D + | F + | M + | P + | S + | T + +
+

B

+ + + +
+ +

D

+ + + +
+ +

F

+ + + +
+ +

M

+ + + +
+ +

P

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ + + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/index.html python-macholib-1.9/doc/_build/html/index.html --- python-macholib-1.8/doc/_build/html/index.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/index.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,171 @@ + + + + + + + + Macholib - Analyze and edit Mach-O headers — macholib 1.8 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Macholib - Analyze and edit Mach-O headers

+

macholib can be used to analyze and edit Mach-O headers, the executable +format used by Mac OS X.

+

It’s typically used as a dependency analysis tool, and also to rewrite dylib +references in Mach-O headers to be @executable_path relative.

+

Though this tool targets a platform specific file format, it is pure python +code that is platform and endian independent.

+
+

General documentation

+ +
+ + +
+

Contributors

+

Macholib was written by Bob Ippolito and is currently maintained by Ronald Oussoren <ronaldoussoren@mac.com>.

+
+
+

Indices and tables

+ +
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/license.html python-macholib-1.9/doc/_build/html/license.html --- python-macholib-1.8/doc/_build/html/license.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/license.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,141 @@ + + + + + + + + License — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

License

+

Copyright (c) Bob Ippolito

+

Parts are copyright (c) 2010-2014 Ronald Oussoren

+
+

MIT License

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the “Software”), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do +so.

+

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE.

+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/MachO.html python-macholib-1.9/doc/_build/html/MachO.html --- python-macholib-1.8/doc/_build/html/MachO.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/MachO.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,133 @@ + + + + + + + + macholib.MachO — Utilities for reading and writing Mach-O headers — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.MachO — Utilities for reading and writing Mach-O headers

+

This module defines a class Macho, which enables reading +and writing the Mach-O header of an executable file or dynamic +library on MacOS X.

+
+
+class macholib.MachO.MachO(filename)
+

Creates a MachO object by reading the Mach-O headers from +filename.

+

The filename should refer to an existing file in Mach-O +format, and can refer to fat (universal) binaries.

+
+ +
+

Note

+

more information will be added later

+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/MachoOGraph.html python-macholib-1.9/doc/_build/html/MachoOGraph.html --- python-macholib-1.8/doc/_build/html/MachoOGraph.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/MachoOGraph.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,126 @@ + + + + + + + + macholib.MachoGraph — Graph data structure of Mach-O dependencies — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.MachoGraph — Graph data structure of Mach-O dependencies

+

This module defines the class MachOGraph which represents the +direct and indirect dependencies of one or more Mach-O files on +other (library) files.

+
+
+class macholib.MachOGraph.MachOGraph(...)
+

To be discussed.

+
+ +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/macho_o.html python-macholib-1.9/doc/_build/html/macho_o.html --- python-macholib-1.8/doc/_build/html/macho_o.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/macho_o.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,123 @@ + + + + + + + + macholib.mach_o — Low-level definitions — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.mach_o — Low-level definitions

+

This module defines constants and packable structure types +that correspond to elements of a Mach-O file.

+

The names of classes and constants is the same as those in +the Mach-O header files and +Apple’s documentation. This document therefore +doesn’t explictly document the names in this module.

+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/MachoOStandalone.html python-macholib-1.9/doc/_build/html/MachoOStandalone.html --- python-macholib-1.8/doc/_build/html/MachoOStandalone.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/MachoOStandalone.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,126 @@ + + + + + + + + macholib.MachOStandalone — Create standalone application bundles — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.MachOStandalone — Create standalone application bundles

+

This module defines class MachOStandalone which locates +all Mach-O files in a directory (assumed to be the root of an +application or plugin bundle) and then copies all non-system +dependencies for the located files into the bundle.

+
+
+class macholib.MachOStandalone.MachOStandalone(base[, dest[, graph[, env[, executable_path]]]])
+
+ +
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/objects.inv and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/objects.inv differ diff -Nru python-macholib-1.8/doc/_build/html/ptypes.html python-macholib-1.9/doc/_build/html/ptypes.html --- python-macholib-1.8/doc/_build/html/ptypes.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/ptypes.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,318 @@ + + + + + + + + macholib.ptypes — Packable types — macholib 1.8 documentation + + + + + + + + + + + + + + + +
+
+
+
+ +
+

macholib.ptypes — Packable types

+

The module macholib.ptypes defines types that can be serialized into +byte arrays, both for basic types and structured types (C struct values).

+
+

Utility functions

+
+
+macholib.ptypes.sizeof(value)
+

Returns the size in bytes of an object when packed, raises ValueError +for inappropriate values.

+
+ +
+
+macholib.ptypes.pypackable(name, pytype, format)
+

Returns a packable type that is a subclass of the Python type +pytype. The value is converted to and from the packed format using +the struct format.

+
+ +
+
+

Packable types

+
+
+class macholib.ptypes.BasePackable
+

All packable types are a subclass of BasePackable, which defines +the basic interface but is itself an abstract base class.

+
+
+_endian_
+

The byteorder of a packed value. This will be "<"` for +little endian values and ``">" for big-endian ones.

+
+

Note

+

the endianness option is a public value to be +able to support both big- and little-endian file formats.

+

The name suggests that this attribute is private, this +is partically for historical reasons and partially to +avoid conflicts with field names in C structs.

+
+
+ +
+
+from_mmap(mmap, ptr, **kw)
+

This class method constructs the value from a subview of a +mmap.mmap object. It uses bytes starting at offset ptr and +reads just enough bytes to read the entire object.

+
+ +
+
+from_fileobj(fp, **kw)
+

This class method constructs the value by reading just enough bytes +from a file-like object.

+
+

Note

+

The file must be opened in binary mode, that is read calls +should return byte-strings and not unicode-strings.

+
+
+ +
+
+from_str(value, **kw)
+

This class method construct the value by using the struct module +to parse the given bytes.

+
+

Note

+

contrary to what the name suggests the argument to this +method is a byte-string, not a unicode-string.

+
+
+ +
+
+from_tuple(fp, **kw)
+

This class method constructs the object from a tuple with all fields.

+
+ +
+
+to_str()
+

Returns a byte representation of the value.

+
+

Note

+

there is no default implementation for this method

+
+
+ +
+
+to_fileobj(fp)
+

Write a byte representation of the value to the given file-like +object. The file should be opened in binary mode.

+
+ +
+
+to_mmap(mmap, ptr)
+

Write the byte representation of the value to a mmap.mmap +object, starting at offset ptr.

+
+ +
+ +
+
+class macholib.ptypes.Structure(...)
+
+
+_fields_
+

This class attribute is a list that contains the fields of the +structure in the right order. Every item of this list is a tuple +with 2 arguments: the first element is the name of the field, and +the second the packable type for the field.

+

Every subclass of Structure must define _fields_ to be +usefull, and the value of _fields_ should not be changed after +class construction.

+
+ +
+ +
+
+

Basic packables

+

Other than the core functionality this module defines a number of +pypackable() types that correspond to useful basic C types.

+
+
+class macholib.ptypes.p_char([value])
+

A byte string of length 1

+
+ +
+
+class macholib.ptypes.p_int8
+

An 8-bit signed integer

+
+ +
+
+class macholib.ptypes.p_uint8
+

An 8-bit unsigned integer

+
+ +
+
+class macholib.ptypes.p_int16
+

An 16-bit signed integer

+
+ +
+
+class macholib.ptypes.p_uint16
+

An 16-bit unsigned integer

+
+ +
+
+class macholib.ptypes.p_int32
+

An 32-bit signed integer

+
+ +
+
+class macholib.ptypes.p_uint32
+

An 32-bit unsigned integer

+
+ +
+
+class macholib.ptypes.p_int64
+

An 64-bit signed integer

+
+ +
+
+class macholib.ptypes.p_uint64
+

An 64-bit unsigned integer

+
+ +
+
+class macholib.ptypes.p_float
+

An floating point value of type float

+
+ +
+
+class macholib.ptypes.p_double
+

An floating point value of type double

+
+ +
+

Note

+

the module exports a number of other types with +names starting with p_, such as p_int. Those types +are deprecated and should not be used.

+
+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/py-modindex.html python-macholib-1.9/doc/_build/html/py-modindex.html --- python-macholib-1.8/doc/_build/html/py-modindex.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/py-modindex.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,153 @@ + + + + + + + + Python Module Index — macholib 1.8 documentation + + + + + + + + + + + + + + + + + +
+
+
+
+ + +

Python Module Index

+ +
+ m +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ m
+ macholib +
    + macholib.dyld + Emulation of functonality of the dynamic linker
    + macholib.dylib + Generic dylib path manipulation
    + macholib.framework + Generic framework path manipulation
    + macholib.mach_o + Low-level definitions of elements in a Mach-O file
    + macholib.MachO + Utilities for reading and writing Mach-O headers
    + macholib.MachOGraph + Graph data structure of Mach-O dependencies
    + macholib.MachOStandalone + Create standalone application bundles
    + macholib.ptypes + Serializable types
    + macholib.SymbolTable + Class to read the symbol table from a Mach-O header
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/scripts.html python-macholib-1.9/doc/_build/html/scripts.html --- python-macholib-1.8/doc/_build/html/scripts.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/scripts.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,157 @@ + + + + + + + + Command-line tools — macholib 1.8 documentation + + + + + + + + + + + + + + + + +
+
+
+
+ +
+

Command-line tools

+
+

python -m macholib find

+

Usage:

+
$ python -mmacholib find dir...
+
+
+

Print the paths of all MachO binaries +in the specified directories.

+
+
+

python -m macholib standalone

+

Usage:

+
$ python -m macholib standalone appbundle...
+
+
+

Convert one or more application bundles into +standalone bundles. That is, copy all non-system +shared libraries and frameworks used by the bundle +into the bundle and rewrite load commands.

+
+
+

python -mmacholib dump

+

Usage:

+
$ python -mmacholib dump dir...
+
+
+

Prints information about all architectures in a +Mach-O file as well as all libraries it links +to.

+
+
+ + +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/search.html python-macholib-1.9/doc/_build/html/search.html --- python-macholib-1.8/doc/_build/html/search.html 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/search.html 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,107 @@ + + + + + + + + Search — macholib 1.8 documentation + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Search

+
+ +

+ Please activate JavaScript to enable the search + functionality. +

+
+

+ From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

+
+ + + +
+ +
+ +
+ +
+
+
+ +
+
+ + + + \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/searchindex.js python-macholib-1.9/doc/_build/html/searchindex.js --- python-macholib-1.8/doc/_build/html/searchindex.js 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/searchindex.js 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1 @@ +Search.setIndex({docnames:["MachO","MachoOGraph","MachoOStandalone","SymbolTable","changelog","dyld","dylib","framework","index","license","macho_o","ptypes","scripts"],envversion:50,filenames:["MachO.rst","MachoOGraph.rst","MachoOStandalone.rst","SymbolTable.rst","changelog.rst","dyld.rst","dylib.rst","framework.rst","index.rst","license.rst","macho_o.rst","ptypes.rst","scripts.rst"],objects:{"macholib.MachO":{MachO:[0,1,1,""]},"macholib.MachOGraph":{MachOGraph:[1,1,1,""]},"macholib.MachOStandalone":{MachOStandalone:[2,1,1,""]},"macholib.SymbolTable":{SymbolTable:[3,1,1,""]},"macholib.dyld":{dydl_framework_path:[5,2,1,""],dyld_default_search:[5,2,1,""],dyld_executable_path_search:[5,2,1,""],dyld_fallback_framework_path:[5,2,1,""],dyld_fallback_library_path:[5,2,1,""],dyld_find:[5,2,1,""],dyld_image_suffix:[5,2,1,""],dyld_image_suffix_search:[5,2,1,""],dyld_library_path:[5,2,1,""],dyld_loader_search:[5,2,1,""],dyld_override_search:[5,2,1,""],framework_find:[5,2,1,""]},"macholib.dylib":{dylib_info:[6,2,1,""]},"macholib.framework":{framework_info:[7,2,1,""]},"macholib.ptypes":{BasePackable:[11,1,1,""],Structure:[11,1,1,""],p_char:[11,1,1,""],p_double:[11,1,1,""],p_float:[11,1,1,""],p_int16:[11,1,1,""],p_int32:[11,1,1,""],p_int64:[11,1,1,""],p_int8:[11,1,1,""],p_uint16:[11,1,1,""],p_uint32:[11,1,1,""],p_uint64:[11,1,1,""],p_uint8:[11,1,1,""],pypackable:[11,2,1,""],sizeof:[11,2,1,""]},"macholib.ptypes.BasePackable":{_endian_:[11,3,1,""],from_fileobj:[11,4,1,""],from_mmap:[11,4,1,""],from_str:[11,4,1,""],from_tuple:[11,4,1,""],to_fileobj:[11,4,1,""],to_mmap:[11,4,1,""],to_str:[11,4,1,""]},"macholib.ptypes.Structure":{_fields_:[11,3,1,""]},macholib:{MachO:[0,0,0,"-"],MachOGraph:[1,0,0,"-"],MachOStandalone:[2,0,0,"-"],SymbolTable:[3,0,0,"-"],dyld:[5,0,0,"-"],dylib:[6,0,0,"-"],framework:[7,0,0,"-"],mach_o:[10,0,0,"-"],ptypes:[11,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","function","Python function"],"3":["py","data","Python data"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:function","3":"py:data","4":"py:method"},terms:{"2to3":4,"abstract":11,"byte":[4,11],"class":[0,1,2,8,10,11],"default":[3,4,5,11],"export":11,"float":11,"function":[3,4,5,6,7],"new":4,"public":11,"return":[4,5,6,7,11],"switch":4,"try":4,AND:9,Added:[4,5],BUT:9,FOR:9,NOT:9,THE:9,That:[4,12],The:[0,3,4,5,8,10,11],There:4,USE:9,Use:4,WITH:9,_endian_:11,_fields_:11,_relocat:4,abi:8,abl:11,about:[4,12],accept:5,action:9,actual:4,add:4,added:[0,4],affect:4,after:[3,11],again:4,alig:4,all:[2,3,4,5,11,12],also:[3,4,8],alwai:[4,5],analysi:8,andrei:4,ani:[3,9],antoin:4,app:4,appbundl:12,append:5,appl:[8,10],applic:[4,8,12],appropri:4,arch_map:4,architectur:12,aren:[4,5],argument:[3,4,5,11],aris:9,arm64:4,arm_v7:4,around:4,arrai:11,asger:4,asgerdrewsen:4,associ:9,assum:2,attribut:11,author:[3,9],avail:4,avoid:11,bad:4,base:[2,11],basepack:11,basic:4,becaus:[3,4],been:[3,4],behaviour:4,below:4,berg:4,better:4,big:11,bin:4,binari:[0,3,4,5,11,12],bit:[3,4,11],bitbucket:[4,8],blazhei:4,bob:[8,9],bogu:4,both:11,brendan:4,broken:4,bug:[3,4],bugfix:4,build:4,builtin:3,bundl:[4,8,12],byteord:11,call:[4,11],can:[0,4,5,6,7,8,11],cannot:[4,5],caus:4,chang:[4,5,11],charg:9,chri:4,christian:4,claim:9,classifi:4,clearer:4,code:[3,4,8],codebas:4,com:[4,8],command:[4,8],compil:4,conflict:11,confus:4,connect:9,constant:[4,10],construct:[4,11],contain:[3,4,11],contract:9,contrari:11,convert:[11,12],copi:[2,9,12],copyright:9,core:11,correct:5,correspond:[4,10,11],could:4,cpu:4,cpu_type_nam:4,creat:[0,8],current:[5,8],damag:9,data:8,david:4,deal:9,deduc:4,defin:[0,1,2,5,6,7,10,11],definit:[4,8],depend:[2,4,8],deprec:[3,4,11],describ:4,descript:5,dest:2,dict:[6,7],dictionari:5,dir:12,direct:1,directli:5,directori:[2,5,12],discuss:1,distribut:[4,9],document:[4,9,10],doe:3,doesn:[3,4,5,10],dorsei:4,doubl:11,drewsen:4,dsym:4,due:4,dump:4,dure:4,dydl_framework_path:5,dyld:[4,8],dyld_default_search:[4,5],dyld_executable_path_search:5,dyld_fallback:4,dyld_fallback_framework_path:5,dyld_fallback_library_path:5,dyld_find:[4,5],dyld_framework_path:5,dyld_image_suffix:5,dyld_image_suffix_search:5,dyld_library_path:5,dyld_loader_search:[4,5],dyld_override_search:5,dylib:8,dylib_info:6,dynam:[0,5,6,7],earlier:4,effect:4,either:5,element:[10,11],empti:5,emul:8,enabl:0,end:3,endian:[4,8,11],enhanc:4,enorm:4,enough:11,entir:11,entri:5,env:[2,5],environ:[4,5],equival:[6,7],even:[4,5],event:9,everi:11,except:4,execut:[0,5,8],executable_path:[2,5,8],exist:0,experiment:4,explictli:10,express:9,extract:[6,7],fallback:5,far:3,fat:0,featur:4,field:[4,11],file:[0,1,2,3,4,5,8,9,10,11,12],filenam:[0,6,7],filesystem:5,find:[4,5],first:[4,11],fit:9,fix:4,follow:[6,7],form:[6,7],format:[0,8,11],found:[5,6,7],four:[6,7],framework:[4,5,8,12],framework_find:5,framework_info:7,framwork:5,free:9,from:[0,4,6,7,8,9,11],from_fileobj:11,from_mmap:11,from_str:[4,11],from_tupl:11,furnish:9,futur:4,gener:4,given:[3,11],gmail:4,grant:9,graph:[2,8],grep:4,guanqun:4,had:4,hang:4,has:[3,4],hautop:4,have:4,header:[4,10],herebi:9,hhmi:4,histor:11,histori:8,holder:9,holmsblazhei:4,http:4,iOS:4,imag:5,implement:[3,4,11],impli:9,inappropri:11,includ:[4,9],independ:8,index:8,indirect:1,indirectli:5,inform:[0,4,5,6,7,12],initi:3,input:[4,5],insid:4,instal:[4,5],instead:4,integ:11,interfac:11,invalid:4,ippolito:[8,9],irrespect:4,isn:4,issu:[4,8],item:[5,11],iter:5,itself:[4,11],janelia:4,just:11,kind:9,klein:4,know:3,kwarg:4,larg:4,later:0,lc_data_in_cod:4,lc_encryption_info:4,lc_encryption_info_64:4,lc_function_start:4,lc_linker_opt:4,lc_load_upward_dylib:4,lc_version_min_iphoneo:4,lc_version_min_macosx:4,length:11,level:8,liabil:9,liabl:9,librari:[0,1,5,6,7,12],licens:8,lifetim:4,lightli:4,like:[3,5,11],limit:9,line:[4,8],link:[4,5,12],linker:[4,5],lion:4,list:[4,5,11],littl:11,load:[4,12],loader:4,loader_path:[4,5],locat:[2,4,5,6,7],logic:4,longer:4,look:5,looser:5,low:8,mac:8,mach:[2,4,10,12],mach_o:[4,8],mach_version_help:4,macho:[3,4,8,12],macho_dump:4,macho_find:4,macho_standalon:4,macho_version_help:4,machograph:[4,8],machostandalon:8,maco:0,magic:4,mai:7,maintain:8,make:4,manipul:8,manual:5,map:[4,6,7],marc:4,matthia:4,merchant:9,mercuri:4,merg:9,messag:4,metadata:4,method:[4,11],minor:4,miss:4,mmacholib:4,mmap:11,mode:11,modifi:9,modul:[0,1,2,3,4,5,6,7,8,10,11],modulegraph:3,more:[0,1,4,5,12],move:4,must:11,myapp:4,nam:4,name:[4,5,6,7,10,11],name_suffix:[6,7],nativ:4,need:4,newli:4,next:4,nguyen:4,non:[2,12],none:[5,6,7],noninfring:9,not_system_fil:4,noth:5,now:4,number:[4,5,11],object:[0,3,5,11],obtain:9,odd:4,offset:11,old:4,onc:4,one:[1,6,7,12],ones:11,onli:5,open:[3,11],openfil:3,option:[3,4,5,6,7,11],order:[4,11],org:4,osx:4,other:[1,9,11],otherwis:9,otool:4,oussoren:[4,8,9],out:9,output:4,p_byte:4,p_char:11,p_doubl:11,p_float:11,p_int16:[4,11],p_int32:[4,11],p_int64:[4,11],p_int8:[4,11],p_int:[4,11],p_long:4,p_longlong:4,p_ptr:4,p_short:4,p_ubyt:4,p_uint16:[4,11],p_uint32:[4,11],p_uint64:[4,11],p_uint8:[4,11],p_uint:4,p_ulong:4,p_ulonglong:4,p_ushort:4,pack:11,packabl:[4,8,10],packag:[3,4],page:[5,8],parent:4,pars:[4,11],part:9,partial:11,partic:11,particular:9,pass:4,patch:4,path:[4,5,8,12],permiss:9,permit:9,person:9,platform:8,pleas:4,plugin:2,point:11,pointer:4,possibl:4,ppc64:4,prepent:5,present:[4,6,7],prevent:4,previou:4,print:[4,12],privat:[4,11],problem:4,proces:4,process:4,properli:3,provid:[4,9],ptr:11,ptype:[4,8],publish:9,pure:8,purpos:9,py2app:4,py3k:4,pypack:11,pysid:4,python2:4,python:[4,5,8,11],pytyp:11,rais:[5,11],rang:4,read:[4,8,11],realiti:4,reason:11,refer:[0,5],rel:[5,8],releas:8,reli:4,reloc:4,remov:4,renam:4,repositori:[4,8],repres:[1,4],represent:11,request:5,restrict:9,result:[3,4,5],revers:4,rewrit:[4,8,12],right:[9,11],ringwald:4,ronald:[4,8,9],ronaldoussoren:8,root:2,same:[4,5,10],search:[4,5,8],second:11,see:[4,5],sell:9,semant:[4,5],serial:11,set:4,setup:4,setuptool:4,shall:9,share:[5,12],shortnam:[6,7],should:[0,4,5,11],show:4,side:4,sign:[4,11],simon:4,size:11,sizeof:11,softwar:9,some:4,somevers:[6,7],someversion_suffix:6,sourc:4,sourcecod:8,specif:8,specifi:[3,5,12],sphinx:4,standalon:[4,8],start:[4,5,11],still:4,stop:4,string:[4,11],struct:11,structur:[8,10,11],stuart:4,subclass:11,subfield:4,sublicens:9,subtyp:4,subview:11,suffix:[5,6,7],suggest:11,support:[3,4,11],suppport:4,symbol:8,symbolt:[4,8],system:[2,4,5,12],tabl:4,take:[6,7],tara:4,target:8,test:4,testsuit:4,than:[5,11],thei:4,therefor:10,thi:[0,1,2,3,4,5,6,7,8,9,10,11],those:[4,5,10,11],though:[4,5,8],thread_command:4,to_fileobj:11,to_mmap:11,to_str:11,too:4,tool:[4,8],tort:9,tracker:[4,8],tri:4,trogdorsei:4,tsugrii:4,ttsugrii:4,tupl:11,type:[4,8,10],typic:8,typo:4,unclear:4,undefin:4,underscor:4,undocu:4,unicod:11,univers:0,unsign:11,untrust:4,updat:3,usag:12,use:[3,4,9],used:[3,4,5,8,11,12],useful:[6,7,11],user:[3,4,5],uses:11,using:[4,5,11],usr:4,util:[4,8],valu:[4,5,11],valueerror:[5,11],variabl:4,variou:4,version:[4,5,6,7],view:4,walk:4,warranti:9,well:[3,12],were:4,what:11,when:[4,5,11],where:5,whether:9,which:[0,1,2,4,5,11],whom:9,width:4,without:[4,9],work:[3,4],would:4,write:[8,11],written:8,x86_64:4,xcode:4,yield:5,you:4,your:4},titles:["macholib.MachO — Utilities for reading and writing Mach-O headers","macholib.MachoGraph — Graph data structure of Mach-O dependencies","macholib.MachOStandalone — Create standalone application bundles","macholib.SymbolTable — Class to read the symbol table from a Mach-O header","Release history","macholib.dyld — Dyld emulation","macholib.dylib — Generic dylib path manipulation","macholib.framework — Generic framework path manipulation","Macholib - Analyze and edit Mach-O headers","License","macholib.mach_o — Low-level definitions","macholib.ptypes — Packable types","Command-line tools"],titleterms:{"class":3,"function":11,analyz:8,applic:2,basic:11,bundl:2,command:12,contributor:8,creat:2,data:1,definit:10,depend:1,document:8,dump:12,dyld:5,dylib:6,edit:8,emul:5,find:12,framework:7,from:3,gener:[6,7,8],graph:1,guid:8,header:[0,3,8],histori:4,indic:8,level:10,licens:9,line:12,low:10,mach:[0,1,3,8],mach_o:10,macho:0,machograph:1,macholib:[0,1,2,3,4,5,6,7,8,10,11,12],machostandalon:2,manipul:[6,7],mit:9,mmacholib:12,onlin:8,packabl:11,path:[6,7],ptype:11,python:12,read:[0,3],refer:8,releas:4,resourc:8,standalon:[2,12],structur:1,symbol:3,symbolt:3,tabl:[3,8],tool:12,type:11,util:[0,11],write:0}}) \ No newline at end of file diff -Nru python-macholib-1.8/doc/_build/html/_sources/changelog.rst.txt python-macholib-1.9/doc/_build/html/_sources/changelog.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/changelog.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/changelog.rst.txt 2016-12-26 14:11:40.000000000 +0000 @@ -0,0 +1,298 @@ +Release history +=============== + +macholib 1.8 +------------ + +* Use the same dependency walk logic as otool + + Patch by Taras Tsugrii + +* Added support for new load commands + + Patch by David Dorsey , + with enhancements by Ronald Oussoren. + +* Fix procesing DSYM file from XCODE 6.x + + Patch by HolmsBlazhey + +* MachOGraph.locate(): When calling dyld_find(), use kwarg 'loader_path', not 'loader'. + + Patch by Stuart Berg + +* Add fields to thread_command + + Patch by Asger Hautop Drewsen + +* Add missing ARM_V7S subtype. + + Patch by "NN" + +* Fix for SymbolTable + + Patch by Christian Klein + +* Use first Mach-O header as the default header + + Patch by Christian Klein + +* Issue #17: add LC_LOAD_UPWARD_DYLIB to _RELOCATABLE set + +* Issue #16: macholib "hangs" on invalid input + + Due to the use of the range function on untrusted input + the python process could hang when reading invalid input, due + to trying to construct an enormous list. + +* Issue #18: Bad version parsing in macho_version_helper + + The order of subfields in ``mach_version_helper`` was reversed from + reality. + +* Issue #19: Fix aligment issue that prevented code signing + + Patch by Brendan Simon + +* Fix issue #14: Can't pass endian argument to p_uint64.from_str + + +macholib 1.7 +------------ + +* Added support for ARM64, LC_ENCRYPTION_INFO_64 and LC_LINKER_OPTION + + Patch by Matthias Ringwald. + +* Load commands now have a "describe" method that returns more information + about the command. + + Patch by David Dorsey. + +* The MAGIC value in the header was always represented in the native + byte order, instead of as the value read from the binary. + + Patch by David Dorsey. + +* Added various new constants to "macholib.mach_o". + + Patch by David Dorsey. + +macholib 1.6.1 +-------------- + +* ? + +macholib 1.6 +------------ + +* Add support for '@loader_path' link command in + macholib.dyld: + + - Added function ``macholib.dyld.dyld_loader_search`` + + - This function is used by ``macholib.dyld.dyld_find``, + and that function now has an new (optional) argument + with the path to the loader. + +* Also add support for '@loader_path' to macholib.MachoGraph, + using the newly added '@loader_path' support in the + dyld module. + + Due to this suppport the *macho_standalone* tool can + now rewrite binaries that contain an '@loader_path' load + command. + + +macholib 1.5.2 +-------------- + +* Issue #93: Show the name of the affected file in the exception message + for Mach-O headers that are too large to relocate. + + +macholib 1.5.1 +-------------- + +* There were no 'classifiers' in the package metadata due to + a bug in setup.py. + +macholib 1.5 +-------------- + +macholib 1.5 is a minor feature release + +* No longer use 2to3 to provide Python 3 support + + As a side-effect of this macholib no longer supports + Python 2.5 and earlier. + +* Adds suppport for some new macho load commands + +* Fix for py3k problem in macho_standalone.py + + Patch by Guanqun Lu. + +* Fix for some issues in macho_dump.py + + Patch by Nam Nguyen + +* Issue #10: Fix for LC_DATA_IN_CODE linker commands, without + this fix py2app cannot build application bundles when + the source binaries have been compiled with Xcode 4.5. + +* Issue #6: Fix for LC_ENCRYPTION_INFO linker commands + +* Use the mach header information to print the cpu type of a + binary, instead of trying to deduce that from pointer width + and endianness. + + Changed the code because of issue #6, in which a user tries to + dump a iOS binary which results in bogus output in the previous + releases. + +* The mapping ``macholib.macho_dump.ARCH_MAP`` is undocumented + and no longer used by macholib itself. It will be removed + in the next release. + + +* The command-line tools ``macho_find``, ``macho_dump`` and + ``macho_standalone`` are deprecated. Use "python -mmacholib" + instead. That is:: + + $ python -mmacholib dump /usr/bin/grep + + $ python -mmacholib find ~ + + $ python -mmacholib standalone myapp.app + + This makes it clearer which version of the tools are used. + +macholib 1.4.3 +-------------- + +macholib 1.4.3 is a minor feature release + +* Added strings for 'x86_64' and 'ppc64' to + macholib.mach_o.CPU_TYPE_NAMES. + +* macho_find and macho_dump were broken in the 1.4.2 release + +* added 'macholib.util.NOT_SYSTEM_FILES', a list of + files that aren't system path's even though they are + located in system locations. + + Needed to work around a bug in PySide (see issue #32 in the + py2app tracker) + + + +macholib 1.4.2 +-------------- + +macholib 1.4.2 is a minor bugfix release + +* The support for new load commands that was added in 1.4.1 + contained a typo that caused problems on OSX 10.7 (Lion). + +macholib 1.4.1 +-------------- + +macholib 1.4.1 is a minor feature release + +Features: + +- Add support for a number of new MachO load commands that were added + during the lifetime of OSX 10.6: ``LC_LOAD_UPWARD_DYLIB``, + ``LC_VERSION_MIN_MACOSX``, ``LC_VERSION_MIN_IPHONEOS`` and + ``LC_FUNCTION_STARTS``. + +macholib 1.4 +------------- + +macholib 1.4 is a feature release + +Features: + +- Documentation is now generated using `sphinx `_ + and can be viewed at . + +- The repository has moved to bitbucket + +- There now is a testsuite + +- Private functionality inside modules was renamed to + a name starting with an underscore. + + .. note:: if this change affects your code you are relying on undefined + implementation features, please stop using private functions. + +- The basic packable types in ``macholib.ptypes`` were renamed to better + represent the corresponding C type. The table below lists the old + an new names (the old names are still available, but are deprecated and + will be removed in a future release). + + +--------------+--------------+ + | **Old name** | **New name** | + +==============+==============+ + | p_byte | p_int8 | + +--------------+--------------+ + | p_ubyte | p_uint8 | + +--------------+--------------+ + | p_short | p_int16 | + +--------------+--------------+ + | p_ushort | p_uint16 | + +--------------+--------------+ + | p_int | p_int32 | + +--------------+--------------+ + | p_uint | p_uint32 | + +--------------+--------------+ + | p_long | p_int32 | + +--------------+--------------+ + | p_ulong | p_uint32 | + +--------------+--------------+ + | p_longlong | p_int64 | + +--------------+--------------+ + | p_ulonglong | p_uint64 | + +--------------+--------------+ + + ``Macholib.ptypes.p_ptr`` is no longer present as it had an unclear + definition and isn't actually used in the codebase. + + +Bug fixes: + +- The semantics of ``dyld.dyld_default_search`` were changed a bit, + it now first searches the framework path (if appropriate) and then + the linker path, irrespective of the value of the ``DYLD_FALLBACK*`` + environment variables. + + Previous versions would change the search order when those variables + was set, which is odd and doesn't correspond with the documented + behaviour of the system dyld. + +- It is once again possible to install using python2.5 + +- The source distribution includes all files, this was broken + due to the switch to mercurial (which confused setuptools) + +macholib 1.3 +------------ + +macholib 1.3 is a feature release. + +Features: + +- Experimental Python 3.x support + + This version contains lightly tested support for Python 3. + +macholib 1.2.2 +-------------- + +macholib 1.2.2 is a bugfix release. + +Bug fixes: + +- Macholib should work better with 64-bit code + (patch by Marc-Antoine Parent) diff -Nru python-macholib-1.8/doc/_build/html/_sources/dyld.rst.txt python-macholib-1.9/doc/_build/html/_sources/dyld.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/dyld.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/dyld.rst.txt 2016-12-13 13:23:06.000000000 +0000 @@ -0,0 +1,159 @@ +:mod:`macholib.dyld` --- Dyld emulation +======================================= + +.. module:: macholib.dyld + :synopsis: Emulation of functonality of the dynamic linker + +This module defines a number of functions that can be used +to emulate the functionality of the dynamic linker (``dyld``) +w.r.t. looking for library files and framworks. + +.. function:: dyld_image_suffix([env]) + + Looks up the suffix to append to shared library and + framework names and returns this value when found. + Returns ``None`` when no suffix should be appended. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + See the description of ``DYLD_IMAGE_SUFFIX`` in the + manual page for dyld(1) for more information. + +.. function:: dydl_framework_path([env]) + + Returns a user-specified framework search path, + or an empty list when only the default search path + should be used. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + See the description of ``DYLD_FRAMEWORK_PATH`` in the + manual page for dyld(1) for more information. + +.. function:: dyld_library_path([env]) + + Returns a user-specified library search path, + or an empty list when only the default search path + should be used. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + See the description of ``DYLD_LIBRARY_PATH`` in the + manual page for dyld(1) for more information. + +.. function:: dyld_fallback_framework_path([env]) + + Return a user specified list of of directories where + to look for frameworks that aren't in their install path, + or an empty list when the default fallback path should + be used. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + See the description of ``DYLD_FALLBACK_FRAMEWORK_PATH`` in the + manual page for dyld(1) for more information. + +.. function:: dyld_fallback_library_path([env]) + + Return a user specified list of of directories where + to look for libraries that aren't in their install path, + or an empty list when the default fallback path should + be used. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + See the description of ``DYLD_FALLBACK_LIBRARY_PATH`` in the + manual page for dyld(1) for more information. + +.. function:: dyld_image_suffix_search(iterator[, env]) + + Yields all items in *iterator*, and prepents names + with the image suffix to those items when the suffix + is specified. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + +.. function:: dyld_override_search(name[, env]) + + If *name* is a framework name yield filesystem + paths relative to the entries in the framework + search path. + + Always yield the filesystem paths relative to the + entries in the library search path. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + +.. function:: dyld_executable_path_search(name, executable_path) + + If *name* is a path starting with ``@executable_path/`` yield + the path relative to the specified *executable_path*. + + If *executable_path* is None nothing is yielded. + +.. function:: dyld_loader_search(name, loader_path) + + If *name* is a path starting with ``@loader_path/`` yield + the path relative to the specified *loader_path*. + + If *loader_path* is None nothing is yielded. + + .. versionadded: 1.6 + +.. function:: dyld_default_search(name[, env]) + + Yield the filesystem locations to look for a dynamic + library or framework using the default locations + used by the system dynamic linker. + + This function will look in ``~/Library/Frameworks`` + for frameworks, even though the system dynamic linker + doesn't. + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + +.. function:: dyld_find(name[, executable_path[, env [, loader_path]]]) + + Returns the path of the requested dynamic library, + raises :exc:`ValueError` when the library cannot be found. + + This function searches for the library in the same + locations and de system dynamic linker. + + The *executable_path* should be the filesystem path + of the executable to which the library is linked (either + directly or indirectly). + + The *env* argument is a dictionary, which defaults + to :data:`os.environ`. + + The *loader_path* argument is an optional filesystem path for + the object file (binary of shared library) that references + *name*. + + .. versionchanged:: 1.6 + + Added the *loader_path* argument. + +.. function:: framework_find(fn[, executable_path[, env]]) + + Find a framework using the same semantics as the + system dynamic linker, but will accept looser names + than the system linker. + + This function will return a correct result for input + values like: + + * Python + + * Python.framework + + * Python.framework/Versions/Current diff -Nru python-macholib-1.8/doc/_build/html/_sources/dylib.rst.txt python-macholib-1.9/doc/_build/html/_sources/dylib.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/dylib.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/dylib.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,33 @@ +:mod:`macholib.dylib` --- Generic dylib path manipulation +========================================================= + +.. module:: macholib.dylib + :synopsis: Generic dylib path manipulation + +This module defines a function :func:`dylib_info` that can extract +useful information from the name of a dynamic library. + +.. function:: dylib_info(filename) + + A dylib name can take one of the following four forms: + + * ``Location/Name.SomeVersion_Suffix.dylib`` + + * ``Location/Name.SomeVersion.dylib`` + + * ``Location/Name_Suffix.dylib`` + + * ``Location/Name.dylib`` + + Returns None if not found or a mapping equivalent to:: + + dict( + location='Location', + name='Name.SomeVersion_Suffix.dylib', + shortname='Name', + version='SomeVersion', + suffix='Suffix', + ) + + .. note:: *SomeVersion* and *Suffix* are optional and my be ``None`` + if not present. diff -Nru python-macholib-1.8/doc/_build/html/_sources/framework.rst.txt python-macholib-1.9/doc/_build/html/_sources/framework.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/framework.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/framework.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,34 @@ +:mod:`macholib.framework` --- Generic framework path manipulation +========================================================================== + +.. module:: macholib.framework + :synopsis: Generic framework path manipulation + + +This module defines a function :func:`framework_info` that can extract +useful information from the name of a dynamic library in a framework. + +.. function:: framework_info(filename) + + A framework name can take one of the following four forms: + + * ``Location/Name.framework/Versions/SomeVersion/Name_Suffix`` + + * ``Location/Name.framework/Versions/SomeVersion/Name`` + + * ``Location/Name.framework/Name_Suffix`` + + * ``Location/Name.framework/Name`` + + Returns ``None`` if not found, or a mapping equivalent to:: + + dict( + location='Location', + name='Name.framework/Versions/SomeVersion/Name_Suffix', + shortname='Name', + version='SomeVersion', + suffix='Suffix', + ) + + .. note:: *SomeVersion* and *Suffix* are optional and may be None + if not present. diff -Nru python-macholib-1.8/doc/_build/html/_sources/index.rst.txt python-macholib-1.9/doc/_build/html/_sources/index.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/index.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/index.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,59 @@ +Macholib - Analyze and edit Mach-O headers +========================================== + +macholib can be used to analyze and edit Mach-O headers, the executable +format used by Mac OS X. + +It's typically used as a dependency analysis tool, and also to rewrite dylib +references in Mach-O headers to be ``@executable_path`` relative. + +Though this tool targets a platform specific file format, it is pure python +code that is platform and endian independent. + +General documentation +--------------------- + +.. toctree:: + :maxdepth: 1 + + changelog + license + scripts + +Reference Guide +--------------- + +.. toctree:: + :maxdepth: 1 + + MachO + MachoOGraph + MachoOStandalone + SymbolTable + dyld + dylib + framework + macho_o + ptypes + +Online Resources +---------------- + +* `Sourcecode repository on bitbucket `_ + +* `The issue tracker `_ + +* `Mac OS X ABI Mach-O File Format Reference at Apple `_ + +Contributors +------------ + +Macholib was written by Bob Ippolito and is currently maintained by Ronald Oussoren . + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff -Nru python-macholib-1.8/doc/_build/html/_sources/license.rst.txt python-macholib-1.9/doc/_build/html/_sources/license.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/license.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/license.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,23 @@ +License +======= + +Copyright (c) Bob Ippolito + +Parts are copyright (c) 2010-2014 Ronald Oussoren + +MIT License +........... + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software +and associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do +so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff -Nru python-macholib-1.8/doc/_build/html/_sources/MachoOGraph.rst.txt python-macholib-1.9/doc/_build/html/_sources/MachoOGraph.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/MachoOGraph.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/MachoOGraph.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,14 @@ +:mod:`macholib.MachoGraph` --- Graph data structure of Mach-O dependencies +=============================================================================== + +.. module:: macholib.MachOGraph + :synopsis: Graph data structure of Mach-O dependencies + +This module defines the class :class:`MachOGraph` which represents the +direct and indirect dependencies of one or more Mach-O files on +other (library) files. + +.. class:: MachOGraph(...) + + To be discussed. + diff -Nru python-macholib-1.8/doc/_build/html/_sources/macho_o.rst.txt python-macholib-1.9/doc/_build/html/_sources/macho_o.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/macho_o.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/macho_o.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,13 @@ +:mod:`macholib.mach_o` --- Low-level definitions +================================================ + +.. module:: macholib.mach_o + :synopsis: Low-level definitions of elements in a Mach-O file + +This module defines constants and packable structure types +that correspond to elements of a Mach-O file. + +The names of classes and constants is the same as those in +the Mach-O header files and +`Apple's documentation `_. This document therefore +doesn't explictly document the names in this module. diff -Nru python-macholib-1.8/doc/_build/html/_sources/MachoOStandalone.rst.txt python-macholib-1.9/doc/_build/html/_sources/MachoOStandalone.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/MachoOStandalone.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/MachoOStandalone.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,13 @@ +:mod:`macholib.MachOStandalone` --- Create standalone application bundles +========================================================================== + +.. module:: macholib.MachOStandalone + :synopsis: Create standalone application bundles + +This module defines class :class:`MachOStandalone` which locates +all Mach-O files in a directory (assumed to be the root of an +application or plugin bundle) and then copies all non-system +dependencies for the located files into the bundle. + +.. class:: MachOStandalone(base[, dest[, graph[, env[, executable_path]]]]) + diff -Nru python-macholib-1.8/doc/_build/html/_sources/MachO.rst.txt python-macholib-1.9/doc/_build/html/_sources/MachO.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/MachO.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/MachO.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,19 @@ +:mod:`macholib.MachO` --- Utilities for reading and writing Mach-O headers +========================================================================== + +.. module:: macholib.MachO + :synopsis: Utilities for reading and writing Mach-O headers + +This module defines a class :class:`Macho`, which enables reading +and writing the Mach-O header of an executable file or dynamic +library on MacOS X. + +.. class:: MachO(filename) + + Creates a MachO object by reading the Mach-O headers from + *filename*. + + The *filename* should refer to an existing file in Mach-O + format, and can refer to fat (universal) binaries. + +.. note:: more information will be added later diff -Nru python-macholib-1.8/doc/_build/html/_sources/ptypes.rst.txt python-macholib-1.9/doc/_build/html/_sources/ptypes.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/ptypes.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/ptypes.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,157 @@ +:mod:`macholib.ptypes` --- Packable types +========================================= + +.. module:: macholib.ptypes + :synopsis: Serializable types + +The module :mod:`macholib.ptypes` defines types that can be serialized into +byte arrays, both for basic types and structured types (C ``struct`` values). + +Utility functions +----------------- + +.. function:: sizeof(value) + + Returns the size in bytes of an object when packed, raises :exc:`ValueError` + for inappropriate values. + +.. function:: pypackable(name, pytype, format) + + Returns a packable type that is a subclass of the Python type + *pytype*. The value is converted to and from the packed format using + the struct *format*. + + + +Packable types +-------------- + + +.. class:: BasePackable + + All packable types are a subclass of :class:`BasePackable`, which defines + the basic interface but is itself an abstract base class. + + .. data:: _endian_ + + The byteorder of a packed value. This will be ``"<"` for + little endian values and ``">"`` for big-endian ones. + + .. note:: the endianness option is a public value to be + able to support both big- and little-endian file formats. + + The name suggests that this attribute is private, this + is partically for historical reasons and partially to + avoid conflicts with field names in C structs. + + .. method:: from_mmap(mmap, ptr, \**kw) + + This class method constructs the value from a subview of a + :class:`mmap.mmap` object. It uses bytes starting at offset *ptr* and + reads just enough bytes to read the entire object. + + .. method:: from_fileobj(fp, \**kw) + + This class method constructs the value by reading just enough bytes + from a file-like object. + + .. note:: The file must be opened in binary mode, that is read calls + should return byte-strings and not unicode-strings. + + .. method:: from_str(value, \**kw) + + This class method construct the value by using the struct module + to parse the given bytes. + + .. note:: contrary to what the name suggests the argument to this + method is a byte-string, not a unicode-string. + + .. method:: from_tuple(fp, \**kw) + + This class method constructs the object from a tuple with all fields. + + + .. method:: to_str() + + Returns a byte representation of the value. + + .. note:: there is no default implementation for this method + + .. method:: to_fileobj(fp) + + Write a byte representation of the value to the given file-like + object. The file should be opened in binary mode. + + .. method:: to_mmap(mmap, ptr) + + Write the byte representation of the value to a :class:`mmap.mmap` + object, starting at offset *ptr*. + + +.. class:: Structure(...) + + .. data:: _fields_ + + This class attribute is a list that contains the fields of the + structure in the right order. Every item of this list is a tuple + with 2 arguments: the first element is the name of the field, and + the second the packable type for the field. + + Every subclass of :class:`Structure` must define *_fields_* to be + usefull, and the value of *_fields_* should not be changed after + class construction. + + +Basic packables +--------------- + +Other than the core functionality this module defines a number of +:func:`pypackable` types that correspond to useful basic C types. + +.. class:: p_char([value]) + + A byte string of length 1 + +.. class:: p_int8 + + An 8-bit signed integer + +.. class:: p_uint8 + + An 8-bit unsigned integer + +.. class:: p_int16 + + An 16-bit signed integer + +.. class:: p_uint16 + + An 16-bit unsigned integer + +.. class:: p_int32 + + An 32-bit signed integer + +.. class:: p_uint32 + + An 32-bit unsigned integer + +.. class:: p_int64 + + An 64-bit signed integer + +.. class:: p_uint64 + + An 64-bit unsigned integer + +.. class:: p_float + + An floating point value of type ``float`` + +.. class:: p_double + + An floating point value of type ``double`` + +.. note:: the module exports a number of other types with + names starting with ``p_``, such as ``p_int``. Those types + are deprecated and should not be used. diff -Nru python-macholib-1.8/doc/_build/html/_sources/scripts.rst.txt python-macholib-1.9/doc/_build/html/_sources/scripts.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/scripts.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/scripts.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,35 @@ +Command-line tools +================== + +python -m macholib find +----------------------- + +Usage:: + + $ python -mmacholib find dir... + +Print the paths of all MachO binaries +in the specified directories. + +python -m macholib standalone +----------------------------- + +Usage:: + + $ python -m macholib standalone appbundle... + +Convert one or more application bundles into +standalone bundles. That is, copy all non-system +shared libraries and frameworks used by the bundle +into the bundle and rewrite load commands. + +python -mmacholib dump +---------------------- + +Usage:: + + $ python -mmacholib dump dir... + +Prints information about all architectures in a +Mach-O file as well as all libraries it links +to. diff -Nru python-macholib-1.8/doc/_build/html/_sources/SymbolTable.rst.txt python-macholib-1.9/doc/_build/html/_sources/SymbolTable.rst.txt --- python-macholib-1.8/doc/_build/html/_sources/SymbolTable.rst.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_sources/SymbolTable.rst.txt 2016-12-13 12:53:28.000000000 +0000 @@ -0,0 +1,24 @@ +:mod:`macholib.SymbolTable` --- Class to read the symbol table from a Mach-O header +=================================================================================== + +.. module:: macholib.SymbolTable + :synopsis: Class to read the symbol table from a Mach-O header + +This module is deprecated because it is not by the author +and likely contains bugs. It also does not work for 64-bit binaries. + +.. class:: SymbolTable(macho[, openfile]) + + Reads the SymbolTable for the given Mach-O object. + + The option argument *openfile* specifies the + function to use to open the file, defaulting to + the builtin :func:`open` function. + + .. warning:: As far as we know this class is not used + by any user of the modulegraph package, and the code + has not been updated after the initial implementation. + + The end result of this is that the code does not + support 64-bit code at all and likely doesn't work + properly for 32-bit code as well. Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/ajax-loader.gif and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/ajax-loader.gif differ diff -Nru python-macholib-1.8/doc/_build/html/_static/basic.css python-macholib-1.9/doc/_build/html/_static/basic.css --- python-macholib-1.8/doc/_build/html/_static/basic.css 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_static/basic.css 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,632 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/comment-bright.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/comment-bright.png differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/comment-close.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/comment-close.png differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/comment.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/comment.png differ diff -Nru python-macholib-1.8/doc/_build/html/_static/doctools.js python-macholib-1.9/doc/_build/html/_static/doctools.js --- python-macholib-1.8/doc/_build/html/_static/doctools.js 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_static/doctools.js 2016-12-26 14:15:13.000000000 +0000 @@ -0,0 +1,287 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/down.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/down.png differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/down-pressed.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/down-pressed.png differ Binary files /tmp/tmpV9FVSq/E991iPjxn_/python-macholib-1.8/doc/_build/html/_static/file.png and /tmp/tmpV9FVSq/2dG2AKnT1_/python-macholib-1.9/doc/_build/html/_static/file.png differ diff -Nru python-macholib-1.8/doc/_build/html/_static/jquery-3.1.0.js python-macholib-1.9/doc/_build/html/_static/jquery-3.1.0.js --- python-macholib-1.8/doc/_build/html/_static/jquery-3.1.0.js 1970-01-01 00:00:00.000000000 +0000 +++ python-macholib-1.9/doc/_build/html/_static/jquery-3.1.0.js 2016-12-13 13:24:29.000000000 +0000 @@ -0,0 +1,10074 @@ +/*eslint-disable no-unused-vars*/ +/*! + * jQuery JavaScript Library v3.1.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-07-07T21:44Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.1.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + // Known :disabled false positives: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-