tags 292989 patch
thanks
On Thu, Feb 03, 2005 at 11:06:33PM -0500, Joey Hess wrote:
> Colin Watson wrote:
> > I would agree if the client were using TITLE, but in this case it isn't;
> > it's apt-setup doing 'db_settitle apt-setup/title'. Why would debconf
> > need to create a fake template when the client is already using
> > SETTITLE?
>
> Oh sure, I agree we should use SETTITLE in that case.
Of course this requires sending some DATA commands too. How about the
attached patch? It results in this passthrough communication for the
beginning of samples/demo in fr_FR.UTF-8:
CAPB
TITLE
TITLE Configuration de
DATA demo/title type title
DATA demo/title description This is my demo title in French (yeah, right)
SETTITLE demo/title
Cheers,
--
Colin Watson [EMAIL PROTECTED]
Index: Debconf/FrontEnd/Passthrough.pm
===================================================================
--- Debconf/FrontEnd/Passthrough.pm (revision 1801)
+++ Debconf/FrontEnd/Passthrough.pm (working copy)
@@ -176,6 +176,40 @@
$this->talk('TITLE', $title);
}
+=head2 settitle
+
+Pass title question name along to the UI agent, along with necessary data
+about it.
+
+=cut
+
+sub settitle
+{
+ my $this = shift;
+ my $question = shift;
+
+ $this->{title} = $question->description;
+
+ my $tag = $question->template->template;
+ my $type = $question->template->type;
+ my $desc = $question->description;
+ my $extdesc = $question->extended_description;
+
+ $this->talk('DATA', $tag, 'type', $type);
+
+ if ($desc) {
+ $desc =~ s/\n/\\n/g;
+ $this->talk('DATA', $tag, 'description', $desc);
+ }
+
+ if ($extdesc) {
+ $extdesc =~ s/\n/\\n/g;
+ $this->talk('DATA', $tag, 'extended_description', $extdesc);
+ }
+
+ $this->talk('SETTITLE', $tag);
+}
+
=head2 go
Asks the UI agent to display all pending questions, first using the special
Index: Debconf/ConfModule.pm
===================================================================
--- Debconf/ConfModule.pm (revision 1801)
+++ Debconf/ConfModule.pm (working copy)
@@ -408,7 +408,11 @@
my $question=Debconf::Question->get($question_name) ||
return $codes{badparams}, "\"$question_name\" doesn't exist";
- $this->frontend->title($question->description);
+ if ($this->frontend->can('settitle')) {
+ $this->frontend->settitle($question);
+ } else {
+ $this->frontend->title($question->description);
+ }
return $codes{success};
}