Index: perllib/Polymake/Core/PlainFile.pm =================================================================== --- perllib/Polymake/Core/PlainFile.pm (revision 9931) +++ perllib/Polymake/Core/PlainFile.pm (revision 10207) @@ -203,8 +203,11 @@ if ($@) { report_parse_error($self, "error reading property '$prop_name'"); } + } elsif ($Shell->interactive) { + consume_unknown_property($prop_name, $value, $object); } else { - consume_unknown_property($prop_name, $value, $object); + report_error($self, "unknown property '$prop_name'"); + $self->unknown_seen=1; } } else { @@ -225,7 +228,7 @@ *************************************************************************** You can convert the unknown sections to attachments and/or valid properties if you load the file $name in the interactive shell or by executing -polymake --touch $file +polymake --touch $name *************************************************************************** . } @@ -243,13 +246,6 @@ ################################################################################# sub consume_unknown_property { my ($prop_name, $value, $object)=@_; - - unless ($Shell->interactive) { - report_error($self, "unknown property '$prop_name'"); - $self->unknown_seen=1; - return; - } - (my $show_value=$value) =~ s/\A((?:^.*\n){3})^(?s:.+)\Z/$1...\n/m; local_sub($Shell->try_completion, @@ -263,10 +259,10 @@ if (defined($obj_type)) { if (defined (my $proto=eval { $User::application->eval_type($obj_type) })) { push @{$self->completion_words}, - map { "$obj_type\::$_" } $self->try_property_completion($word, $proto, $prefix); + map { "$obj_type\::$_" } Shell::try_property_completion($proto, $prefix); } } else { - push @{$self->completion_words}, $self->try_property_completion($word, $object->type, $prefix); + push @{$self->completion_words}, Shell::try_property_completion($object->type, $prefix); } } });