diff --git a/lib/PGUtil.pm b/lib/PGUtil.pm index c6a7c08cf..9338c2900 100644 --- a/lib/PGUtil.pm +++ b/lib/PGUtil.pm @@ -89,7 +89,7 @@ sub pretty_print_html { # provides html output -- NOT a method if (!$ref) { return $r_input =~ s/' + return '
' . ($ref eq 'HASH' ? '' : '
warning_message( + qq{PGresponsegroup::append_response error: There is already an answer labeled "$response_label".}); } } else { - $self->internal_debug_message('PGresponsegroup::append_response error: undefined or empty response label'); + $self->warning_message('PGresponsegroup::append_response error: Undefined or empty response label.'); } return; } @@ -82,13 +83,14 @@ sub replace_response { sub extend_response { my ($self, $response_label, $new_value_key, $selected) = @_; - if (defined $self->{responses}{$response_label}) { + if (defined $response_label && defined $self->{responses}{$response_label}) { my $response_value = $self->{responses}{$response_label}; $response_value //= []; if (ref($response_value) !~ /^(HASH|ARRAY)$/) { - $self->internal_debug_message("PGresponsegroup::extend_response: error in extending response ", - ref($response_value), $response_value); + $self->warning_message('PGresponsegroup::extend_response error: Invalid value type "' + . (ref($response_value) || 'scalar') + . qq{" for $response_label.}); $response_value = [ [ $response_value => $selected ] ]; } @@ -99,7 +101,12 @@ sub extend_response { $self->{responses}{$response_label} = $response_value; return $response_value; } else { - $self->internal_debug_message("PGresponsegroup::extend_response: response label |$response_label| not defined"); + if (defined $response_label) { + $self->warning_message( + qq{PGresponsegroup::extend_response error: Response label "$response_label" not defined.}); + } else { + $self->warning_message('PGresponsegroup::extend_response error: Response label not provided.'); + } return; } } diff --git a/macros/PG.pl b/macros/PG.pl index aea6e6a3b..d363e3948 100644 --- a/macros/PG.pl +++ b/macros/PG.pl @@ -111,14 +111,13 @@ =head2 DOCUMENT sub DOCUMENT { # get environment - $rh_envir = \%envir; #KLUDGE FIXME - # warn "rh_envir is ",ref($rh_envir); - $PG = new PGcore( - $rh_envir, # can add key/value options to modify + $rh_envir = \%envir; #KLUDGE FIXME + + $PG = new PGcore( + $rh_envir, # can add key/value options to modify ); - $PG->clear_internal_debug_messages; - # initialize main:: variables + # initialize main:: variables $ANSWER_PREFIX = $PG->{ANSWER_PREFIX}; $QUIZ_PREFIX = $PG->{QUIZ_PREFIX}; $showPartialCorrectAnswers = $PG->{flags}->{showPartialCorrectAnswers}; @@ -620,7 +619,7 @@ sub NEW_ANS_ARRAY_NAME_EXTENSION { } my $ans_label = $PG->new_ans_name(); my $element_ans_label = $PG->new_array_element_label($ans_label, $row_num, $col_num, vec_num => $vecnum); - my $response = new PGresponsegroup($ans_label, $element_ans_label, undef); + my $response = PGresponsegroup->new($ans_label, $element_ans_label, undef); $PG->extend_ans_group($ans_label, $response); return $element_ans_label; } @@ -632,7 +631,7 @@ sub CLEAR_RESPONSES { if (ref($responsegroup)) { $responsegroup->clear; } else { - $responsegroup = $PG->{PG_ANSWERS_HASH}{$ans_label}{response} = new PGresponsegroup($label); + $responsegroup = $PG->{PG_ANSWERS_HASH}{$ans_label}{response} = PGresponsegroup->new($ans_label); } } return;