portage.git
13 years agoebuild(1): fix ebuild modification check
Zac Medico [Wed, 2 Mar 2011 00:53:25 +0000 (16:53 -0800)]
ebuild(1): fix ebuild modification check

This has been broken since the setcpv call (triggering metadata
generation) was added before it in commit
0b39d24bb8270e5c89eaddfd1f5a4181cf9e31d3.

13 years agoaction_deselect: expand cat against world atoms
Zac Medico [Tue, 1 Mar 2011 21:52:04 +0000 (13:52 -0800)]
action_deselect: expand cat against world atoms

13 years agounmerge: log pre/postrm FAILED messages
Zac Medico [Tue, 1 Mar 2011 21:20:59 +0000 (13:20 -0800)]
unmerge: log pre/postrm FAILED messages

13 years agoowners_cache: fix EPREFIX miscalculation
Zac Medico [Tue, 1 Mar 2011 21:04:41 +0000 (13:04 -0800)]
owners_cache: fix EPREFIX miscalculation

This reverts commit 43e0b3ea4289aab9b4258d29d06afac40abd6c01 and
renames the root_len variable to eroot_len (for clarity).

13 years agoowners_cache: add parent dirs deeper than EPREFIX
Zac Medico [Tue, 1 Mar 2011 20:42:56 +0000 (12:42 -0800)]
owners_cache: add parent dirs deeper than EPREFIX

13 years agounmerge: implicitly unmerge parent directories
Zac Medico [Tue, 1 Mar 2011 20:07:53 +0000 (12:07 -0800)]
unmerge: implicitly unmerge parent directories

We can't necessarily assume that they are explicitly listed in
CONTENTS.

13 years agoowners_cache: implicitly add parent directories
Zac Medico [Tue, 1 Mar 2011 18:06:01 +0000 (10:06 -0800)]
owners_cache: implicitly add parent directories

We can't necessarily assume that they are explicitly listed in
CONTENTS.

13 years agorepoman: variable.usedwithhelpers ignore quoted
Zac Medico [Mon, 28 Feb 2011 20:37:22 +0000 (12:37 -0800)]
repoman: variable.usedwithhelpers ignore quoted

13 years agoebuild(1): apply package.env earlier
Zac Medico [Mon, 28 Feb 2011 18:57:53 +0000 (10:57 -0800)]
ebuild(1): apply package.env earlier

This makes it possible to override PORTAGE_TMPDIR.

13 years agodepgraph: case insensitive search for unsatisfied
Zac Medico [Mon, 28 Feb 2011 17:58:27 +0000 (09:58 -0800)]
depgraph: case insensitive search for unsatisfied

This will fix bug #356555.

13 years agorepoman: warn about calls to prepall and preplib
Zac Medico [Mon, 28 Feb 2011 05:27:02 +0000 (21:27 -0800)]
repoman: warn about calls to prepall and preplib

13 years agoRun tests with Python 3.3.
Arfrever Frehtes Taifersar Arahesis [Sat, 26 Feb 2011 20:15:50 +0000 (21:15 +0100)]
Run tests with Python 3.3.

13 years agorepoman: add back portage.internal check
Zac Medico [Sat, 26 Feb 2011 00:19:01 +0000 (16:19 -0800)]
repoman: add back portage.internal check

This check got removed for bug #262365, but now that EAPI 4 is released
we can add it back. Now it checks for ecompress/ecompressdir too (for
bug #218347).

13 years agodoins: fix dodoc directory error handling
Zac Medico [Fri, 25 Feb 2011 20:32:21 +0000 (12:32 -0800)]
doins: fix dodoc directory error handling

13 years agodoins: avoid die when called as dodoc with no arg
Zac Medico [Fri, 25 Feb 2011 20:11:34 +0000 (12:11 -0800)]
doins: avoid die when called as dodoc with no arg

13 years agododoc: call doins, to reuse recursion code
Zac Medico [Fri, 25 Feb 2011 19:50:52 +0000 (11:50 -0800)]
dodoc: call doins, to reuse recursion code

This will fix broken recursion logic for bug #356461.

13 years agododoc: quote ${0}
Zac Medico [Fri, 25 Feb 2011 18:18:38 +0000 (10:18 -0800)]
dodoc: quote ${0}

13 years agododoc: Honour exit status of install, bug 356389.
Ulrich Mueller [Fri, 25 Feb 2011 07:43:17 +0000 (08:43 +0100)]
dodoc: Honour exit status of install, bug 356389.

13 years agoaction_sync: handle IPv6 [ip] in SYNC some more
Zac Medico [Fri, 25 Feb 2011 06:29:31 +0000 (22:29 -0800)]
action_sync: handle IPv6 [ip] in SYNC some more

This will fix bug #356375 some more.

13 years agoaction_sync: handle IPv6 [ip] in SYNC
Zac Medico [Fri, 25 Feb 2011 05:58:44 +0000 (21:58 -0800)]
action_sync: handle IPv6 [ip] in SYNC

This will fix bug #356375.

13 years agoemerge: mention revdep-rebuild in depclean help v2.1.9.41
Zac Medico [Tue, 22 Feb 2011 17:31:50 +0000 (09:31 -0800)]
emerge: mention revdep-rebuild in depclean help

13 years agoshow_depclean_suggestion: use ewarn, not einfo
Zac Medico [Tue, 22 Feb 2011 03:04:10 +0000 (19:04 -0800)]
show_depclean_suggestion: use ewarn, not einfo

13 years agochk_updated_cfg_files: don't display ._cfg0000_
Zac Medico [Tue, 22 Feb 2011 02:59:24 +0000 (18:59 -0800)]
chk_updated_cfg_files: don't display ._cfg0000_

13 years agoUpdate date headers in modified files.
Zac Medico [Tue, 22 Feb 2011 02:50:33 +0000 (18:50 -0800)]
Update date headers in modified files.

13 years agochk_updated_cfg_files: fix plurality of message
Zac Medico [Tue, 22 Feb 2011 02:38:45 +0000 (18:38 -0800)]
chk_updated_cfg_files: fix plurality of message

This will fix bug #355803.

13 years agoemerge.1: fix arg description more for bug 354137
Zac Medico [Tue, 22 Feb 2011 02:19:45 +0000 (18:19 -0800)]
emerge.1: fix arg description more for bug 354137

13 years agopost_emerge: suggest depclean after world update
Zac Medico [Tue, 22 Feb 2011 02:07:07 +0000 (18:07 -0800)]
post_emerge: suggest depclean after world update

This is part of bug #354787.

13 years agopost_emerge: pass in more info
Zac Medico [Tue, 22 Feb 2011 00:35:14 +0000 (16:35 -0800)]
post_emerge: pass in more info

This makes it possible to do things like give special suggestions after
world updates.

13 years agoebuild.sh: remove unused PWORKDIR variable
Zac Medico [Mon, 21 Feb 2011 16:17:09 +0000 (08:17 -0800)]
ebuild.sh: remove unused PWORKDIR variable

13 years agoSubProcess: notify exit listeners in _poll
Zac Medico [Sun, 20 Feb 2011 09:42:14 +0000 (01:42 -0800)]
SubProcess: notify exit listeners in _poll

13 years agoScheduler: ensure _prefetchers is cleared
Zac Medico [Sun, 20 Feb 2011 09:40:37 +0000 (01:40 -0800)]
Scheduler: ensure _prefetchers is cleared

13 years agoUpdate date headers in modified files.
Zac Medico [Sun, 20 Feb 2011 00:00:16 +0000 (16:00 -0800)]
Update date headers in modified files.

13 years agorepoman: variable.usedwithhelpers tighten regex
Zac Medico [Sat, 19 Feb 2011 23:49:13 +0000 (15:49 -0800)]
repoman: variable.usedwithhelpers tighten regex

This will fix bug #355621.

13 years ago_eapi4_src_install: handle empty DOCS like PMS
Zac Medico [Sat, 19 Feb 2011 23:27:32 +0000 (15:27 -0800)]
_eapi4_src_install: handle empty DOCS like PMS

This will fix bug #355635.

13 years agocheck_required_use: improve missing IUSE error
Zac Medico [Sat, 19 Feb 2011 22:53:45 +0000 (14:53 -0800)]
check_required_use: improve missing IUSE error

This will fix bug #355629.

13 years agodocompress, prepcompress: Add missing quotes.
Ulrich Mueller [Fri, 18 Feb 2011 23:42:36 +0000 (00:42 +0100)]
docompress, prepcompress: Add missing quotes.

13 years agoemerge: fix --sync cvs error message
Zac Medico [Fri, 18 Feb 2011 16:44:31 +0000 (08:44 -0800)]
emerge: fix --sync cvs error message

13 years agoemerge: warn to stderr if post_* hooks fail
Zac Medico [Fri, 18 Feb 2011 16:16:31 +0000 (08:16 -0800)]
emerge: warn to stderr if post_* hooks fail

13 years agoemerge: support post_emerge hook like post_sync
Gokdeniz Karadag [Fri, 18 Feb 2011 15:57:25 +0000 (07:57 -0800)]
emerge: support post_emerge hook like post_sync

This will fix bug #355447.

13 years agoegencache: fix cmp_func for python3
Zac Medico [Fri, 18 Feb 2011 15:37:25 +0000 (07:37 -0800)]
egencache: fix cmp_func for python3

13 years agounmerge: don't show null/ cat in unmatched atoms
Zac Medico [Fri, 18 Feb 2011 15:15:15 +0000 (07:15 -0800)]
unmerge: don't show null/ cat in unmatched atoms

This will fix bug #269534.

13 years agoBinpkgVerifier: disable color in background mode
Zac Medico [Fri, 18 Feb 2011 12:05:16 +0000 (04:05 -0800)]
BinpkgVerifier: disable color in background mode

13 years agomail: handle unicode in subject more for python3
Zac Medico [Fri, 18 Feb 2011 08:32:27 +0000 (00:32 -0800)]
mail: handle unicode in subject more for python3

13 years agomail: handle unicode in subject for python3
Zac Medico [Fri, 18 Feb 2011 08:03:10 +0000 (00:03 -0800)]
mail: handle unicode in subject for python3

13 years agoResolverDepthTestCase: test --selective more
Zac Medico [Thu, 17 Feb 2011 10:43:02 +0000 (02:43 -0800)]
ResolverDepthTestCase: test --selective more

13 years agoemerge --sync: display message when cvs fails
Zac Medico [Thu, 17 Feb 2011 10:32:20 +0000 (02:32 -0800)]
emerge --sync: display message when cvs fails

13 years agoUpdate date headers for modified files. v2.1.9.40
Zac Medico [Tue, 15 Feb 2011 17:22:31 +0000 (09:22 -0800)]
Update date headers for modified files.

13 years agodepgraph: fix virtual code to handle unsatisfied
Zac Medico [Mon, 14 Feb 2011 17:00:42 +0000 (09:00 -0800)]
depgraph: fix virtual code to handle unsatisfied

13 years agodepgraph: --deep=0 is equivalent to no deep param
Zac Medico [Mon, 14 Feb 2011 16:43:37 +0000 (08:43 -0800)]
depgraph: --deep=0 is equivalent to no deep param

13 years agodepgraph: --nodeps overrides --complete-graph
Zac Medico [Mon, 14 Feb 2011 16:32:32 +0000 (08:32 -0800)]
depgraph: --nodeps overrides --complete-graph

13 years agoRecognize git-2.eclass when reinstalling self.
Zac Medico [Mon, 14 Feb 2011 15:46:39 +0000 (07:46 -0800)]
Recognize git-2.eclass when reinstalling self.

13 years agoRecognize git-2.eclass as a live eclass.
Zac Medico [Mon, 14 Feb 2011 15:36:12 +0000 (07:36 -0800)]
Recognize git-2.eclass as a live eclass.

13 years agodepgraph: fix KeyError in select_atoms
Zac Medico [Mon, 14 Feb 2011 15:29:33 +0000 (07:29 -0800)]
depgraph: fix KeyError in select_atoms

This happens if depstring evaluates to nothing.

13 years agoget_dep_chain: fix broken parent_arg reference
Zac Medico [Mon, 14 Feb 2011 07:20:48 +0000 (23:20 -0800)]
get_dep_chain: fix broken parent_arg reference

Broken since commit b4f98ec5a1eb2e010a455b19db5bef8d61def241.

13 years agodepgraph: normalize indentation
Zac Medico [Mon, 14 Feb 2011 07:17:04 +0000 (23:17 -0800)]
depgraph: normalize indentation

13 years agodepgraph: ignore fewer deps
Zac Medico [Mon, 14 Feb 2011 06:40:57 +0000 (22:40 -0800)]
depgraph: ignore fewer deps

This restores some desired logic that was left out of commit
5655b4dcfe5e9dae5e9d6352d791c3d04953baf7.

13 years agodepgraph: remove redundant "empty" param checks
Zac Medico [Mon, 14 Feb 2011 06:05:52 +0000 (22:05 -0800)]
depgraph: remove redundant "empty" param checks

Since commit 878f166c5a06b0ab6c5a34dd658c878cc7605fe7, empty implies
deep = True, so these checks are redundant.

13 years agodepgraph: --nodeps overrides --deep
Zac Medico [Mon, 14 Feb 2011 05:50:29 +0000 (21:50 -0800)]
depgraph: --nodeps overrides --deep

13 years agoget_dep_chain: fix unsatisfied_dependency logic
Zac Medico [Mon, 14 Feb 2011 04:57:57 +0000 (20:57 -0800)]
get_dep_chain: fix unsatisfied_dependency logic

Always prefer parents for which the parent atom is unsatisfied by the
child node. This seems to be the intention of the code, though it may
not have behaved correctly due to continuation of the parent loop.

13 years agoFix unhandled FileNotFound from previous commit.
Zac Medico [Mon, 14 Feb 2011 03:59:24 +0000 (19:59 -0800)]
Fix unhandled FileNotFound from previous commit.

There is an existing handler for EnvironmentError, so raise that
instead of FileNotFound.

13 years agoAdd support for grabbing Packages files using external programs.
David James [Fri, 11 Feb 2011 17:25:26 +0000 (09:25 -0800)]
Add support for grabbing Packages files using external programs.

If the user specifies FETCHCOMMAND_*, Portage should honor this when grabbing
Packages files. This allows users to setup support for grabbing Packages files
from other protocols.

BUG=chrome-os-partner:2026
TEST=Try downloading prebuilts from gs:// when FETCHCOMMAND_GS is setup in make.conf

Change-Id: I96b239819351633dd02d608954e81a1c363a4687

Review URL: http://codereview.chromium.org/6458015

13 years agoget_dep_chain: prefer parents in merge list
Zac Medico [Mon, 14 Feb 2011 03:28:07 +0000 (19:28 -0800)]
get_dep_chain: prefer parents in merge list

This will fix bug #354747.

13 years agoResolverDepthTestCase: add more cases
Zac Medico [Sun, 13 Feb 2011 17:35:07 +0000 (09:35 -0800)]
ResolverDepthTestCase: add more cases

13 years agoegencache: --preserve-comments allow missing file
Zac Medico [Sun, 13 Feb 2011 14:18:00 +0000 (06:18 -0800)]
egencache: --preserve-comments allow missing file

This will fix bug #354687.

13 years agodepgraph: fix and test depth control for virtuals
Zac Medico [Sun, 13 Feb 2011 13:55:18 +0000 (05:55 -0800)]
depgraph: fix and test depth control for virtuals

13 years agoResolverDepthTestCase: test new-style virtuals
Zac Medico [Sun, 13 Feb 2011 13:00:28 +0000 (05:00 -0800)]
ResolverDepthTestCase: test new-style virtuals

13 years agoResolverDepthTestCase: add more cases
Zac Medico [Sun, 13 Feb 2011 11:34:32 +0000 (03:34 -0800)]
ResolverDepthTestCase: add more cases

13 years agodepgraph: tweak depth calculation for virtuals
Zac Medico [Sun, 13 Feb 2011 11:13:34 +0000 (03:13 -0800)]
depgraph: tweak depth calculation for virtuals

Recursively traversed virtual dependencies, and their direct
dependencies, are considered to have the same depth as direct
dependencies.

13 years agodepgraph: fix and test --deep control of depth
Zac Medico [Sun, 13 Feb 2011 10:20:24 +0000 (02:20 -0800)]
depgraph: fix and test --deep control of depth

Control over recursion depth hasn't behaved properly since commit
6503980e0e3bcfce9fbaff85c33d87f616e955a9. Now it is fixed and tested.

13 years agodepgraph: make empty param imply deep = True
Zac Medico [Sun, 13 Feb 2011 09:06:39 +0000 (01:06 -0800)]
depgraph: make empty param imply deep = True

This won't change the existing depgraph behavior, but it will allow
logic to be simplified in some cases such that solely the deep param
needs to be consulted (rather than needing to consult both empty and
deep params).

13 years agoebuild.1: update outdated BUILD_PREFIX docs
Zac Medico [Sun, 13 Feb 2011 08:56:42 +0000 (00:56 -0800)]
ebuild.1: update outdated BUILD_PREFIX docs

This will fix bug #354387.

13 years agoegencache: don't ignore as much with --tolerant
Zac Medico [Sun, 13 Feb 2011 08:33:51 +0000 (00:33 -0800)]
egencache: don't ignore as much with --tolerant

Errors returned from --update-use-local-desc and --update-changelogs
are no longer ignored with --tolerant. This will fix part of
bug #354687.

13 years agorepoman: variable.usedwithhelpers ignore comments
Zac Medico [Sun, 13 Feb 2011 07:50:08 +0000 (23:50 -0800)]
repoman: variable.usedwithhelpers ignore comments

This will fix bug #354685.

13 years agodepgraph: avoid atom hash collisions in dep_check
Zac Medico [Sun, 13 Feb 2011 07:36:07 +0000 (23:36 -0800)]
depgraph: avoid atom hash collisions in dep_check

Atoms are stored in the graph as (atom, id(atom)) tuples since each
atom is considered to be a unique entity. For example, atoms that
appear identical may behave differently in USE matching, depending on
their unevaluated form. Also, specially generated virtual atoms may
appear identical while having different _orig_atom attributes.

13 years agodepgraph: return virtual edges from select_atoms
Zac Medico [Sun, 13 Feb 2011 01:52:11 +0000 (17:52 -0800)]
depgraph: return virtual edges from select_atoms

13 years agoemerge.1: cross-ref --newuse and --changed-use
Zac Medico [Sun, 13 Feb 2011 00:22:49 +0000 (16:22 -0800)]
emerge.1: cross-ref --newuse and --changed-use

This will fix bug #354437.

13 years agodepgraph: don't distort edges for virtuals
Zac Medico [Sat, 12 Feb 2011 06:09:30 +0000 (22:09 -0800)]
depgraph: don't distort edges for virtuals

In _add_pkg_dep_string(), _add_pkg() was called with generated
Dependency instances that created fake/distorted edges in the
graph for new-style virtuals (similar to those that were fixed
in commit 5b16e0d800f34dc90cdd8c505172ad16b97f0af4). Now there
won't be any such distorted edges.

13 years agodepgraph: fix distorted display of virtuals
Zac Medico [Sat, 12 Feb 2011 00:09:22 +0000 (16:09 -0800)]
depgraph: fix distorted display of virtuals

As mentioned in bug #353933, comment #4, special new-style virtual
atoms generated/distorted by _expand_new_virtuals() can prevent
extract_affecting_use() from working properly. This is fixed by
saving the original atoms so that the depgraph can map them back
into place at the appropriate step in dependency evaluation.

13 years agodepgraph: avoid reinstall of identical binpkg
Zac Medico [Fri, 11 Feb 2011 08:57:11 +0000 (00:57 -0800)]
depgraph: avoid reinstall of identical binpkg

This will fix bug #354441.

13 years agoemerge.1: update date in header v2.1.9.39
Zac Medico [Tue, 8 Feb 2011 20:47:19 +0000 (12:47 -0800)]
emerge.1: update date in header

13 years agoemerge.1: clarify docs for package arguments
Zac Medico [Tue, 8 Feb 2011 19:52:03 +0000 (11:52 -0800)]
emerge.1: clarify docs for package arguments

This will fix bug #354137.

13 years agoemerge: support ../ path arguments
Zac Medico [Tue, 8 Feb 2011 19:39:41 +0000 (11:39 -0800)]
emerge: support ../ path arguments

This will fix bug #354141.

13 years agoexpand_new_virtuals: fix pkg_use_enabled call
Zac Medico [Tue, 8 Feb 2011 18:54:51 +0000 (10:54 -0800)]
expand_new_virtuals: fix pkg_use_enabled call

AttributeError: 'tuple' object has no attribute 'use'

13 years agorepoman.herdbase: tolerate expat ImportError
Zac Medico [Tue, 8 Feb 2011 10:01:13 +0000 (02:01 -0800)]
repoman.herdbase: tolerate expat ImportError

We tolerate global scope import failures for optional modules, so that
ImportModulesTestCase can succeed (or possibly alert us about
unexpected import failures).

13 years agoportage.debug: handle threading ImportError
Zac Medico [Tue, 8 Feb 2011 09:32:09 +0000 (01:32 -0800)]
portage.debug: handle threading ImportError

13 years agotest_import_modules: exempt repoman.herdbase
Zac Medico [Tue, 8 Feb 2011 09:09:03 +0000 (01:09 -0800)]
test_import_modules: exempt repoman.herdbase

The repoman.herdbase module requires python with xml support.

13 years agocache.ebuild_xattr: don't import ENODATA globally
Zac Medico [Tue, 8 Feb 2011 06:35:14 +0000 (22:35 -0800)]
cache.ebuild_xattr: don't import ENODATA globally

ENODATA is undefined on FreeBSD. This will fix bug #354057.

13 years agoexpand_new_virtuals: handle None for myuse v2.1.9.38
Zac Medico [Tue, 8 Feb 2011 00:42:37 +0000 (16:42 -0800)]
expand_new_virtuals: handle None for myuse

13 years agoexpand_new_virtuals: fix last commit USE handling
Zac Medico [Mon, 7 Feb 2011 22:19:33 +0000 (14:19 -0800)]
expand_new_virtuals: fix last commit USE handling

13 years agoUpdate dates in headers.
Zac Medico [Mon, 7 Feb 2011 22:06:56 +0000 (14:06 -0800)]
Update dates in headers.

13 years agoparen_reduce: allow parens in atoms, for EAPI 4
Zac Medico [Mon, 7 Feb 2011 21:59:23 +0000 (13:59 -0800)]
paren_reduce: allow parens in atoms, for EAPI 4

This will fix bug #354003.

13 years agoebuild.5: fix spelling of "defaults"
Zac Medico [Mon, 7 Feb 2011 21:25:42 +0000 (13:25 -0800)]
ebuild.5: fix spelling of "defaults"

13 years agoexpand_new_virtuals: fix logic from prev commit
Zac Medico [Mon, 7 Feb 2011 11:43:06 +0000 (03:43 -0800)]
expand_new_virtuals: fix logic from prev commit

We need to evaluate conditionals for dependency matching purposes,
though the unevaluated atom will still be available later for other
purposes.

13 years agoexpand_new_virtuals: save atom unevaluated use
Zac Medico [Mon, 7 Feb 2011 11:11:08 +0000 (03:11 -0800)]
expand_new_virtuals: save atom unevaluated use

This leads to a better unsatisfied USE message than the one reported
in bug 353933, comment #3. TODO: Fix it so that these generated
atoms don't break depgraph._get_dep_chain(), due to not being
identical to the original atoms and therefore breaking
extract_affecting_use().

13 years agocache.sqlite: handle sqlite ImportError v2.1.9.37
Zac Medico [Mon, 7 Feb 2011 00:13:22 +0000 (16:13 -0800)]
cache.sqlite: handle sqlite ImportError

This will fix bug #353836.

13 years agodefault_src_test: handle EAPI 4 emake failure
Zac Medico [Sun, 6 Feb 2011 23:00:47 +0000 (15:00 -0800)]
default_src_test: handle EAPI 4 emake failure

This will fix bug #353897.

13 years agoget_dep_chain: add "set" node type v2.1.9.36
Zac Medico [Sat, 5 Feb 2011 03:20:37 +0000 (19:20 -0800)]
get_dep_chain: add "set" node type

13 years agoRevert "parse_metadata_use(): omit empty text tokens."
Zac Medico [Sat, 5 Feb 2011 00:56:14 +0000 (16:56 -0800)]
Revert "parse_metadata_use(): omit empty text tokens."

This reverts commit 52f6b55d51e2accaa446bc5d6920421959289baa.

Since split() never return empty tokens, this patch does nothing.

13 years agocheck_required_use: remove obsolete hunk
Zac Medico [Sat, 5 Feb 2011 00:27:25 +0000 (16:27 -0800)]
check_required_use: remove obsolete hunk

13 years agoREQUIRED_USE: fix parens display and test more
Zac Medico [Sat, 5 Feb 2011 00:16:15 +0000 (16:16 -0800)]
REQUIRED_USE: fix parens display and test more