Your message dated Fri, 25 Nov 2011 12:02:31 +0000
with message-id <[email protected]>
and subject line Bug#645409: fixed in jugglemaster 0.4-6
has caused the Debian Bug report #645409,
regarding Error in patch 010_wx26_trans.patch
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
645409: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645409
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: jugglemaster
Version: 0.4-5

I noticed an error in 010_wx26_trans.patch (thanks to a compiler warning which
I noticed while checking if the package build with wxwidgets2.8):

@@ -208,25 +208,25 @@
 }

 void JMFrame::setSiteSwap(wxString *newsite) {
-  jmlib->setPattern("Something",(JML_CHAR *)(const char *)*newsite,HR_DEF, 
DR_DEF);
+  jmlib->setPattern("Something",(JML_CHAR *)(const char 
*)*newsite->mb_str(wxConvUTF8),HR_DEF, DR_DEF);
 }

 void JMFrame::setStyle(wxString *newstyle) {
-  jmlib->setStyle((JML_CHAR *)(const char *)*newstyle);
+  jmlib->setStyle((JML_CHAR *)(const char *)*newstyle->mb_str(wxConvUTF8));
 }

 void JMFrame::changeSiteSwap(wxCommandEvent& WXUNUSED(event))

The two cases are the same, but looking at the second as there aren't other
parameters so it's clearer:

Before the change, this dereferences the wxString * to give a wxString, which
is then cast to const char * and then to JML_CHAR *

After the change, newstyle->mb_str(wxConvUTF8) returns a pointer to a UTF8
C string, which is then dereferenced to give its first byte, and that byte
value is then cast to a pointer.  That's clearly bogus - the * before
newstyle should be removed.  Then we would cast the UTF-8 C string to const
char * and JML_CHAR * much like before.

I've attached a corrected version of this patch.

Cheers,
    Olly
Author: Barry deFreese <[email protected]>
Description: Build with wx2.6
Forwarded: Chunky Kibbles <[email protected]>, Per Johan Groland <[email protected]>
--- a/src/jmdlx/Makefile
+++ b/src/jmdlx/Makefile
@@ -2,7 +2,6 @@
 
 CXXFLAGS+=-Wall -fsigned-char `wx-config --cppflags`
 # -ansi -pedantic cause warnings from some compilers [wx uses long long]
-LDFLAGS+=`wx-config --ldflags`
 # STATICFLAGS=-Wl,-Bstatic
 STATICFLAGS=-static
 LIBS+=`wx-config --libs`
--- a/src/jmdlx/advsite.cpp
+++ b/src/jmdlx/advsite.cpp
@@ -25,7 +25,7 @@
 END_EVENT_TABLE()
 
 AdvancedSiteSwap::AdvancedSiteSwap(wxWindow *p, JMLib *j)
-	: wxDialog(p, -1, "New SiteSwap",
+	: wxDialog(p, -1, wxT("New SiteSwap"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
 
@@ -35,8 +35,8 @@
   int i;
  // SiteSwap
   wxBoxSizer *siteswapsizer = new wxBoxSizer(wxHORIZONTAL);
-  newsiteswap = new wxTextCtrl(this,-1,jmlib->getSite());
-  siteswapsizer->Add(new wxStaticText(this, 0, "Enter New Siteswap"),
+  newsiteswap = new wxTextCtrl(this,-1,wxString(jmlib->getSite(), wxConvUTF8));
+  siteswapsizer->Add(new wxStaticText(this, 0, wxT("Enter New Siteswap")),
 					0,
 					wxALIGN_CENTER_VERTICAL|wxALL,
 					5);
@@ -53,12 +53,12 @@
   newstyle = new wxChoice ( this,-1,wxDefaultPosition, wxDefaultSize);
 
   for(i=0;i<jmlib->numStyles();i++) {
-        newstyle->Append(style_list[i]);
+        newstyle->Append(wxString(style_list[i], wxConvUTF8));
   }
   
   newstyle->SetSelection(0);
 
-  stylesizer->Add(new wxStaticText(this, 0, "Style"),
+  stylesizer->Add(new wxStaticText(this, 0, wxT("Style")),
 					0,
 					wxALIGN_CENTER_VERTICAL|wxALL,
 					5);
@@ -80,7 +80,7 @@
 					(int)(HR_MIN * 100.0F),
 					(int)(HR_MAX * 100.0F),
 					(int)(jmlib->getHR() * 100.0F));
-  hrdrsizer->Add(new wxStaticText(this, 0, "Height Ratio %"),
+  hrdrsizer->Add(new wxStaticText(this, 0, wxT("Height Ratio %")),
 				1,
 				wxALIGN_RIGHT|wxALL,
 				5);
@@ -99,7 +99,7 @@
 					(int)(DR_MIN*100.0F),
 					(int)(DR_MAX*100.0F),
 					(int)(jmlib->getDR() * 100.0F));
-  hrdrsizer->Add(new wxStaticText(this, 0, "Dwell Ratio %"),
+  hrdrsizer->Add(new wxStaticText(this, 0, wxT("Dwell Ratio %")),
 				1,
 				wxALIGN_CENTRE|wxALL,
 				5);
@@ -110,9 +110,9 @@
 
  // Buttons
 
-  wxButton *ok = new wxButton(this, wxID_OK, "OK");
-  wxButton *apply = new wxButton(this, wxID_APPLY, "Apply");
-  wxButton *cancel = new wxButton(this, wxID_CANCEL, "Cancel");
+  wxButton *ok = new wxButton(this, wxID_OK, wxT("OK"));
+  wxButton *apply = new wxButton(this, wxID_APPLY, wxT("Apply"));
+  wxButton *cancel = new wxButton(this, wxID_CANCEL, wxT("Cancel"));
   wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
   buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
   buttonsizer->Add(apply, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -141,14 +141,14 @@
   JML_FLOAT dr = (JML_FLOAT)drspinner->GetValue()/100.0F;
 
   jmlib->stopJuggle();
-  jmlib->setPattern("Something",(JML_CHAR *)(const char *)newpattern, hr, dr);
-  jmlib->setStyle((JML_CHAR *)(const char *)style);
+  jmlib->setPattern("Something",(JML_CHAR *)(const char *)newpattern.mb_str(wxConvUTF8), hr, dr);
+  jmlib->setStyle((JML_CHAR *)(const char *)style.mb_str(wxConvUTF8));
   jmlib->startJuggle();
   haschanged=0;
 }
 
 void AdvancedSiteSwap::OnApply(wxCommandEvent &WXUNUSED(event)) {
-	if(haschanged || newstyle->GetStringSelection()=="Random") {
+	if(haschanged || newstyle->GetStringSelection()==wxT("Random")) {
 		ApplySettings();
 	}
 }
--- a/src/jmdlx/choosepatt.cpp
+++ b/src/jmdlx/choosepatt.cpp
@@ -25,7 +25,7 @@
 END_EVENT_TABLE()
 
 ChoosePatt::ChoosePatt(wxWindow *parent, JMLib *j, PatternLoader *p)
-	: wxDialog(parent, -1, "Choose Pattern",
+	: wxDialog(parent, -1, wxT("Choose Pattern"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
 
@@ -43,7 +43,7 @@
                                 wxDefaultSize);
   const char *curr_sect;
   for(curr_sect = patterns->GetFirstSection(); curr_sect ; curr_sect=patterns->GetNextSection()) {
-        sectionChoice->Append(curr_sect);
+        sectionChoice->Append(wxString(curr_sect, wxConvUTF8));
   }
   sectionChoice->SetSelection(0);
 
@@ -66,34 +66,34 @@
   choicesizer->Add(patternListBox,1,wxALIGN_CENTER|wxEXPAND|wxALL,5);
 
   wxBoxSizer *showSitesizer = new wxBoxSizer(wxHORIZONTAL);
-  showSitesizer->Add(new wxStaticText(this, 0, "Site"),
+  showSitesizer->Add(new wxStaticText(this, 0, wxT("Site")),
                                         0,
                                         wxALIGN_CENTER_VERTICAL|wxALL,
                                         3);
 
   showSite = new wxTextCtrl(this, -1,
-				jmlib->getSite(),
+				wxString(jmlib->getSite(), wxConvUTF8),
 				wxDefaultPosition,
 				wxDefaultSize,
 				wxTE_READONLY);
   showSitesizer->Add(showSite, 1, wxALIGN_CENTRE|wxEXPAND|wxALL, 3);
 
   wxBoxSizer *showStylesizer = new wxBoxSizer(wxHORIZONTAL);
-  showStylesizer->Add(new wxStaticText(this, 0, "Style"),
+  showStylesizer->Add(new wxStaticText(this, 0, wxT("Style")),
                                         0,
                                         wxALIGN_CENTER_VERTICAL|wxALL,
                                         3);
   showStyle = new wxTextCtrl(this, -1,
-				jmlib->getStyle(),
+				wxString(jmlib->getStyle(), wxConvUTF8),
 				wxDefaultPosition,
 				wxDefaultSize,
 				wxTE_READONLY);
   showStylesizer->Add(showStyle, 1, wxALIGN_CENTRE|wxEXPAND|wxALL, 3);
 
 
-  wxButton *ok = new wxButton(this, wxID_OK, "OK");
-  wxButton *apply = new wxButton(this, wxID_APPLY, "Apply");
-  wxButton *cancel = new wxButton(this, wxID_CANCEL, "Cancel");
+  wxButton *ok = new wxButton(this, wxID_OK, wxT("OK"));
+  wxButton *apply = new wxButton(this, wxID_APPLY, wxT("Apply"));
+  wxButton *cancel = new wxButton(this, wxID_CANCEL, wxT("Cancel"));
   wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
   buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
   buttonsizer->Add(apply, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -127,7 +127,7 @@
 	if(!newSection || !newPattern) {
 		return;
 	}
-	patt = patterns->GetPattern((const char *)newSection,(const char *)newPattern);
+	patt = patterns->GetPattern((const char *)newSection.mb_str(wxConvUTF8),(const char *)newPattern.mb_str(wxConvUTF8));
 	jmlib->stopJuggle();
 	jmlib->setPattern((JML_CHAR *)Patt_GetName(patt),(JML_CHAR *)Patt_GetData(patt), Patt_GetHR(patt), Patt_GetDR(patt));
 	JML_UINT8 style_length = patterns->GetStyleLength(Patt_GetStyle(patt));
@@ -148,10 +148,10 @@
 
 	newPattern = patternListBox->GetStringSelection();
 	newSection = sectionChoice->GetStringSelection();
-	patt = patterns->GetPattern((const char *)newSection,(const char *)newPattern);
+	patt = patterns->GetPattern((const char *)newSection.mb_str(wxConvUTF8),(const char *)newPattern.mb_str(wxConvUTF8));
 
-	showStyle->SetValue(Patt_GetStyle(patt));
-	showSite->SetValue(Patt_GetData(patt));
+	showStyle->SetValue(wxString(Patt_GetStyle(patt), wxConvUTF8));
+	showSite->SetValue(wxString(Patt_GetData(patt), wxConvUTF8));
 }
 
 void ChoosePatt::OnApply(wxCommandEvent &WXUNUSED(event)) {
@@ -184,11 +184,11 @@
 
 void ChoosePatt::SectionChange() {
 	wxString newSection=sectionChoice->GetStringSelection();
-	patterns->SetSection((const char *)newSection);
+	patterns->SetSection((const char *)newSection.mb_str(wxConvUTF8));
 	patternListBox->Clear();
 	const char *curr_patt;
 	while ((curr_patt = patterns->GetNextPatternName())) {
-		patternListBox->Append(curr_patt);
+		patternListBox->Append(wxString(curr_patt, wxConvUTF8));
 	}
 	haschanged=1;
 }
--- a/src/jmdlx/choosestyle.cpp
+++ b/src/jmdlx/choosestyle.cpp
@@ -22,7 +22,7 @@
 END_EVENT_TABLE()
 
 ChooseStyle::ChooseStyle(wxWindow *parent, JMLib *j)
-	: wxDialog(parent, -1, "Change Style",
+	: wxDialog(parent, -1, wxT("Change Style"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
 
@@ -35,16 +35,16 @@
   stylechoice = new wxChoice ( this,-1,wxDefaultPosition, wxDefaultSize);
 
   for(i=0;i<jmlib->numStyles();i++) {
-	stylechoice->Append(style_list[i]);
+	stylechoice->Append(wxString(style_list[i], wxConvUTF8));
   }
 
   stylechoice->SetSelection(0);
 
  // Buttons
 
-  wxButton *ok = new wxButton(this, wxID_OK, "OK");
-  wxButton *apply = new wxButton(this, wxID_APPLY, "Apply");
-  wxButton *cancel = new wxButton(this, wxID_CANCEL, "Cancel");
+  wxButton *ok = new wxButton(this, wxID_OK, wxT("OK"));
+  wxButton *apply = new wxButton(this, wxID_APPLY, wxT("Apply"));
+  wxButton *cancel = new wxButton(this, wxID_CANCEL, wxT("Cancel"));
   wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
   buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
   buttonsizer->Add(apply, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -67,7 +67,7 @@
 void ChooseStyle::ApplySettings() {
   JML_CHAR *newstyle;
 
-  newstyle = (JML_CHAR *)(const char *)stylechoice->GetStringSelection();
+  newstyle = (JML_CHAR *)(const char *)stylechoice->GetStringSelection().mb_str(wxConvUTF8);
   jmlib->setStyle(newstyle);
 }
 
--- a/src/jmdlx/choosestyle.h
+++ b/src/jmdlx/choosestyle.h
@@ -21,12 +21,12 @@
 #include "../jmlib/jmlib.h"
 #include "jmdlx.h"
 
-const wxString possible_styles[] = {   "Normal",
-                              "Mills Mess",
-                              "Windmill",
-                              "Reverse",
-                              "Shower",
-                              "Center"
+const wxString possible_styles[] = {   wxT("Normal"),
+                              wxT("Mills Mess"),
+                              wxT("Windmill"),
+                              wxT("Reverse"),
+                              wxT("Shower"),
+                              wxT("Center")
                                 };
 
 
--- a/src/jmdlx/jmdlx.cpp
+++ b/src/jmdlx/jmdlx.cpp
@@ -26,7 +26,7 @@
   windowx = min(480,wxGetDisplaySize().x);
   windowy = min(400,wxGetDisplaySize().y);
 
-	frame = new JMFrame(NULL, -1, "JuggleMaster Deluxe", wxDefaultPosition, wxSize(windowx,windowy));
+	frame = new JMFrame(NULL, -1, wxT("JuggleMaster Deluxe"), wxDefaultPosition, wxSize(windowx,windowy));
 
   // Set the frame as the top window (this ensures that the application is closed
   // when the frame is closed
@@ -34,28 +34,28 @@
 
 
   wxCmdLineParser cmdline(cmdLineDesc, argc, argv);
-  cmdline.SetLogo("JuggleMaster Deluxe");
+  cmdline.SetLogo(wxT("JuggleMaster Deluxe"));
   
   if(cmdline.Parse() == -1) {
 	exit(0);
   }
   wxString initialsiteswap,initialstyle,named_pattern,semaphore;
 
-  if(cmdline.Found("help")) {
+  if(cmdline.Found(wxT("help"))) {
 	cmdline.Usage();
 	printf("\n Style can be anything in the \"Change Style\" menu, eg \"Mills Mess\"\n");
 	exit(0);
   }
-  if(cmdline.Found("style",&initialstyle)) {
+  if(cmdline.Found(wxT("style"),&initialstyle)) {
 	frame->setStyle(&initialstyle);
   }
-  if(cmdline.Found("pattern",&named_pattern)) {
+  if(cmdline.Found(wxT("pattern"),&named_pattern)) {
 	/* FIXME */
-	printf("Named Pattern: %s\n",(const char *)named_pattern);
+	printf("Named Pattern: %s\n",(const char *)named_pattern.mb_str(wxConvUTF8));
   }
-  if(cmdline.Found("semaphore",&semaphore)) {
+  if(cmdline.Found(wxT("semaphore"),&semaphore)) {
 	/* FIXME */
-	printf("Semaphore Requested: %s\n",(const char *)semaphore);
+	printf("Semaphore Requested: %s\n",(const char *)semaphore.mb_str(wxConvUTF8));
   }
   if (cmdline.GetParamCount() > 0) {
     initialsiteswap = cmdline.GetParam(0);
@@ -114,43 +114,43 @@
 JMFrame::JMFrame(wxWindow* parent, wxWindowID id, const wxString& title,
                        const wxPoint& pos, const wxSize& size) :
                        wxFrame(parent,id,title,pos,size) {
-	SetIcon(wxIcon("IDI_WIZICON"));
+	SetIcon(wxIcon(wxT("IDI_WIZICON")));
 
   fileMenu = new wxMenu();
   optionsMenu = new wxMenu();
   helpMenu = new wxMenu();
   speedMenu = new wxMenu();
 
-  fileMenu->Append(CHANGE_SITESWAP_S, "Change &SiteSwap (Simple)");
-  fileMenu->Append(CHANGE_SITESWAP_A, "Change SiteSwap (Advanced)");
+  fileMenu->Append(CHANGE_SITESWAP_S, wxT("Change &SiteSwap (Simple)"));
+  fileMenu->Append(CHANGE_SITESWAP_A, wxT("Change SiteSwap (Advanced)"));
   fileMenu->AppendSeparator();
-  fileMenu->Append(CHANGE_STYLE_S, "Change S&tyle");
+  fileMenu->Append(CHANGE_STYLE_S, wxT("Change S&tyle"));
   fileMenu->AppendSeparator();
-  fileMenu->Append(CHOOSE_PATTERN, "Choose P&attern");
-  fileMenu->Append(CHOOSE_SEMAPHORE, "Show Se&maphore");
+  fileMenu->Append(CHOOSE_PATTERN, wxT("Choose P&attern"));
+  fileMenu->Append(CHOOSE_SEMAPHORE, wxT("Show Se&maphore"));
   fileMenu->AppendSeparator();
-  fileMenu->Append(PRINT_PS, "&Print...");
+  fileMenu->Append(PRINT_PS, wxT("&Print..."));
   fileMenu->AppendSeparator();
-  fileMenu->Append(ID_EXIT, "E&xit");
+  fileMenu->Append(ID_EXIT, wxT("E&xit"));
 
-  optionsMenu->AppendCheckItem(OPTION_MIRROR, "&Mirror");
-  optionsMenu->AppendCheckItem(OPTION_PAUSE, "&Pause");
-  optionsMenu->AppendCheckItem(OPTION_COLORBALLS, "&Color Balls");
-  optionsMenu->Append(OPTION_REDOWNLOAD, "Re&Download Patterns");
+  optionsMenu->AppendCheckItem(OPTION_MIRROR, wxT("&Mirror"));
+  optionsMenu->AppendCheckItem(OPTION_PAUSE, wxT("&Pause"));
+  optionsMenu->AppendCheckItem(OPTION_COLORBALLS, wxT("&Color Balls"));
+  optionsMenu->Append(OPTION_REDOWNLOAD, wxT("Re&Download Patterns"));
 
-  speedMenu->Append(SPEED_UP,"&Up");
-  speedMenu->Append(SPEED_DOWN,"&Down");
-  speedMenu->Append(SPEED_RESET,"&Reset");
+  speedMenu->Append(SPEED_UP,wxT("&Up"));
+  speedMenu->Append(SPEED_DOWN,wxT("&Down"));
+  speedMenu->Append(SPEED_RESET,wxT("&Reset"));
 
-  helpMenu->Append(ID_ABOUT, "&About");
+  helpMenu->Append(ID_ABOUT, wxT("&About"));
 
   // The menu bar
   wxMenuBar* menuBar = new wxMenuBar();
 
-  menuBar->Append(fileMenu, "&File");
-  menuBar->Append(optionsMenu, "&Options");
-  menuBar->Append(speedMenu, "&Speed");
-  menuBar->Append(helpMenu, "&Help");
+  menuBar->Append(fileMenu, wxT("&File"));
+  menuBar->Append(optionsMenu, wxT("&Options"));
+  menuBar->Append(speedMenu, wxT("&Speed"));
+  menuBar->Append(helpMenu, wxT("&Help"));
   SetMenuBar(menuBar);
 
   // Initialize jmlib
@@ -180,7 +180,7 @@
 }
 
 void JMFrame::OnAbout(wxCommandEvent &WXUNUSED(event)) {
-	wxMessageBox("(C) Ken Matsuoka 1995-6, Per Johan Groland 2002, Gary Briggs 2003", "About JMDeluxe", wxOK, this);
+	wxMessageBox(wxT("(C) Ken Matsuoka 1995-6, Per Johan Groland 2002, Gary Briggs 2003"), wxT("About JMDeluxe"), wxOK, this);
 }
 
 void JMFrame::changeMirror(wxCommandEvent& WXUNUSED(event)) {
@@ -208,25 +208,25 @@
 }
 
 void JMFrame::setSiteSwap(wxString *newsite) {
-  jmlib->setPattern("Something",(JML_CHAR *)(const char *)*newsite,HR_DEF, DR_DEF);
+  jmlib->setPattern("Something",(JML_CHAR *)(const char *)newsite->mb_str(wxConvUTF8),HR_DEF, DR_DEF);
 }
 
 void JMFrame::setStyle(wxString *newstyle) {
-  jmlib->setStyle((JML_CHAR *)(const char *)*newstyle);
+  jmlib->setStyle((JML_CHAR *)(const char *)newstyle->mb_str(wxConvUTF8));
 }
 
 void JMFrame::changeSiteSwap(wxCommandEvent& WXUNUSED(event))
 {
   JML_CHAR *newpattern;
   wxTextEntryDialog dialog(this,
-                           "Change SiteSwap",
-                           "Please Enter SiteSwap Here",
-			   jmlib->getSite(),
+                           _("Change SiteSwap"),
+                           _("Please Enter SiteSwap Here"),
+			   wxString(jmlib->getSite(), wxConvUTF8),
                            wxOK | wxCANCEL | wxCENTRE);
 
   if (dialog.ShowModal() == wxID_OK)
   {
-	newpattern = (JML_CHAR *)(const char *)dialog.GetValue();
+	newpattern = (JML_CHAR *)(const char *)dialog.GetValue().mb_str(wxConvUTF8);
         jmlib->stopJuggle();
 	jmlib->setPattern("Something",newpattern,HR_DEF, DR_DEF);
         jmlib->setStyleDefault();
@@ -248,7 +248,7 @@
 		return;
 	}
   }
-  wxMessageDialog *popup = new wxMessageDialog(this, "No Patterns Loaded!", "Error", wxOK|wxICON_ERROR);
+  wxMessageDialog *popup = new wxMessageDialog(this, wxT("No Patterns Loaded!"), wxT("Error"), wxOK|wxICON_ERROR);
   popup->ShowModal();
 }
 
@@ -260,7 +260,7 @@
 		return;
 	}
   }
-  wxMessageDialog *popup = new wxMessageDialog(this, "No Semaphores Loaded!", "Error", wxOK|wxICON_ERROR);
+  wxMessageDialog *popup = new wxMessageDialog(this, wxT("No Semaphores Loaded!"), wxT("Error"), wxOK|wxICON_ERROR);
   popup->ShowModal();
 }
 
@@ -292,8 +292,8 @@
 void JMFrame::ErrorCallBack(void *aUData, JML_CHAR *aErrMsg) {
   /* Massive thanks go to Colin Bayer for his teaching me how this works */
   wxString error_message;
-  error_message = aErrMsg;
-  wxMessageDialog *message = new wxMessageDialog((JMFrame *)aUData, error_message, "Error", wxOK|wxICON_ERROR);
+  error_message = wxString(aErrMsg, wxConvUTF8);
+  wxMessageDialog *message = new wxMessageDialog((JMFrame *)aUData, error_message, wxT("Error"), wxOK|wxICON_ERROR);
   message->ShowModal();
 }
 
@@ -376,7 +376,9 @@
     dc.DrawEllipse(jmlib->b[i].gx, jmlib->b[i].gy, diam, diam);
   }
   wxString balltext;
-  balltext.Printf("Site: %s    Style: %s    Balls: %i",jmlib->getSite(),jmlib->getStyle(),jmlib->balln);
+  balltext.Printf(wxT("Site: %s    Style: %s    Balls: %i"),
+                  wxString(jmlib->getSite(),wxConvUTF8).c_str(),
+                  wxString(jmlib->getStyle(),wxConvUTF8).c_str(),jmlib->balln);
   dc.DrawText(balltext, 10, 10);
 
   // flip
--- a/src/jmdlx/jmdlx.h
+++ b/src/jmdlx/jmdlx.h
@@ -92,11 +92,11 @@
 
 static const wxCmdLineEntryDesc cmdLineDesc[] =
 {
-    { wxCMD_LINE_SWITCH, "h", "help", "help" },
-    { wxCMD_LINE_OPTION, "p", "pattern", "named pattern", wxCMD_LINE_VAL_STRING},
-    { wxCMD_LINE_OPTION, "s", "style", "style", wxCMD_LINE_VAL_STRING },
-    { wxCMD_LINE_OPTION, "m", "semaphore", "semaphore", wxCMD_LINE_VAL_STRING },
-    { wxCMD_LINE_PARAM,  NULL, NULL, "siteswap", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL},
+    { wxCMD_LINE_SWITCH, wxT("h"), wxT("help"), wxT("help") },
+    { wxCMD_LINE_OPTION, wxT("p"), wxT("pattern"), wxT("named pattern"), wxCMD_LINE_VAL_STRING},
+    { wxCMD_LINE_OPTION, wxT("s"), wxT("style"), wxT("style"), wxCMD_LINE_VAL_STRING },
+    { wxCMD_LINE_OPTION, wxT("m"), wxT("semaphore"), wxT("semaphore"), wxCMD_LINE_VAL_STRING },
+    { wxCMD_LINE_PARAM,  NULL, NULL, wxT("siteswap"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL},
     { wxCMD_LINE_NONE }
 };
 
--- a/src/jmdlx/newsemaphore.cpp
+++ b/src/jmdlx/newsemaphore.cpp
@@ -22,18 +22,18 @@
 END_EVENT_TABLE()
 
 ChooseSemaphore::ChooseSemaphore(wxWindow *parent, JMLib *j, PatternLoader *s)
-	: wxDialog(parent, -1, "Show Semaphore",
+	: wxDialog(parent, -1, wxT("Show Semaphore"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
 
   jmlib = j;
   semaphores = s;
 
-  newsemaphore = new wxTextCtrl(this,-1,jmlib->getStyle(),wxDefaultPosition,wxDefaultSize);
+  newsemaphore = new wxTextCtrl(this,-1,wxString(jmlib->getStyle(), wxConvUTF8),wxDefaultPosition,wxDefaultSize);
 
-  wxButton *ok = new wxButton(this, wxID_OK, "OK");
-  wxButton *apply = new wxButton(this, wxID_APPLY, "Apply");
-  wxButton *cancel = new wxButton(this, wxID_CANCEL, "Cancel");
+  wxButton *ok = new wxButton(this, wxID_OK, wxT("OK"));
+  wxButton *apply = new wxButton(this, wxID_APPLY, wxT("Apply"));
+  wxButton *cancel = new wxButton(this, wxID_CANCEL, wxT("Cancel"));
   wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
   buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
   buttonsizer->Add(apply, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -62,14 +62,14 @@
 	newvalue = newsemaphore->GetValue();
 	newvalue.MakeLower();
 	if(newvalue.Last() != ' ') {
-		newvalue.Append(" ");
+		newvalue.Append(wxT(" "));
 	}
 
 	for(unsigned int i=0; i < newvalue.Length(); i++) {
 		current_letter = newvalue.Mid(i,1);
 		// current_style_length  =  semaphores->GetStyleLength(current_letter);
-		if(current_letter == " ") {
-			current_letter="break";
+		if(current_letter == wxT(" ")) {
+			current_letter=wxT("break");
 		} else if (current_letter.IsNumber()) {
 			current_index = style_len;
 			style_len += semaphores->GetStyleLength("numeral");
@@ -83,51 +83,51 @@
 			ascii stuff isn't safe in unicode or similar. */
 			switch((int)value) {
 				case 1:
-					current_letter="a";
+					current_letter=wxT("a");
 					break;
 				case 2:
-					current_letter="b";
+					current_letter=wxT("b");
 					break;
 				case 3:
-					current_letter="c";
+					current_letter=wxT("c");
 					break;
 				case 4:
-					current_letter="d";
+					current_letter=wxT("d");
 					break;
 				case 5:
-					current_letter="e";
+					current_letter=wxT("e");
 					break;
 				case 6:
-					current_letter="f";
+					current_letter=wxT("f");
 					break;
 				case 7:
-					current_letter="g";
+					current_letter=wxT("g");
 					break;
 				case 8:
-					current_letter="h";
+					current_letter=wxT("h");
 					break;
 				case 9:
-					current_letter="i";
+					current_letter=wxT("i");
 					break;
 				case 0:
-					current_letter="j";
+					current_letter=wxT("j");
 					break;
 				default:
-					current_letter="break";
+					current_letter=wxT("break");
 					break;
 			}
 		}
 		current_index = style_len;
-		style_len += semaphores->GetStyleLength(current_letter);
+		style_len += semaphores->GetStyleLength(current_letter.mb_str(wxConvUTF8));
 		current_style = (JML_INT8 *)realloc((void *)current_style,(size_t)sizeof(JML_INT8)*style_len);
-		memcpy((void *)(current_style+current_index),(void *)semaphores->GetStyle(current_letter),semaphores->GetStyleLength(current_letter)*sizeof(JML_INT8));
+		memcpy((void *)(current_style+current_index),(void *)semaphores->GetStyle(current_letter.mb_str(wxConvUTF8)),semaphores->GetStyleLength(current_letter.mb_str(wxConvUTF8))*sizeof(JML_INT8));
 	}
 
 	newvalue = newsemaphore->GetValue();
 	if(current_style) {
 		jmlib->stopJuggle();
 		jmlib->setPattern((JML_CHAR *)"Semaphore","(2,2)",HR_DEF,DR_DEF);
-		jmlib->setStyle((JML_CHAR *)(const char *)newvalue,style_len/4,current_style);
+		jmlib->setStyle((JML_CHAR *)(const char *)newvalue.mb_str(wxConvUTF8),style_len/4,current_style);
 		jmlib->startJuggle();
 	}
 	free(current_style);
--- a/src/jmdlx/patt.cpp
+++ b/src/jmdlx/patt.cpp
@@ -75,41 +75,41 @@
 	snprintf(usr_filename, 255, "/usr/share/jugglemaster/%s", filename);
 
 	if(targetfilename.Len() > 0) {
-		targetfilename += "/.jugglemaster/";
+		targetfilename += wxT("/.jugglemaster/");
 		if(!wxDirExists(targetfilename)) {
 			if(!wxMkdir(targetfilename,0755)) {
-				targetfilename = "";
+				targetfilename = wxT("");
 			}
 		}
-		targetfilename += filename;
+		targetfilename += wxString(filename, wxConvUTF8);
 	} else {
-		targetfilename = filename;
+		targetfilename = wxString(filename, wxConvUTF8);
 	}
 
-	if(stat((const char *)targetfilename,&buf) != -1 && !redownload) {
-		patternfile = fopen((const char *)targetfilename,"r");
+	if(stat((const char *)targetfilename.mb_str(wxConvUTF8),&buf) != -1 && !redownload) {
+		patternfile = fopen((const char *)(targetfilename.mb_str(wxConvUTF8)),"r");
 		return(patternfile != NULL);
 	} else if(stat(filename,&buf) != -1 && !redownload) {
-		wxCopyFile(filename,targetfilename);
-		patternfile = fopen((const char *)targetfilename,"r");
+		wxCopyFile(wxString(filename, wxConvUTF8),targetfilename);
+		patternfile = fopen((const char *)(targetfilename.mb_str(wxConvUTF8)),"r");
 		return(patternfile != NULL);
 	} else if(stat(usr_filename, &buf) != -1 && !redownload) {
 		patternfile = fopen(usr_filename, "r");
 		return (patternfile != NULL);
 	} else {
-		wxString fullurl(WEB_PREFIX);
+		wxString fullurl(WEB_PREFIX, wxConvUTF8);
 		wxString proxy;
 		wxString message;
-		fullurl.Append(filename);
-		message.Printf("Downloading File: %s\n",(const char *)fullurl);
+		fullurl.Append(wxString(filename, wxConvUTF8));
+		message.Printf(wxT("Downloading File: %s\n"),(const char *)fullurl.c_str());
 		unsigned int current_progress = 0;
 		char buffer[1024];
 
 		wxURL url(fullurl);
 
-		if(wxGetEnv("http_proxy",&proxy)) {
-			if(proxy.Find("//") > -1) {
-				proxy = proxy.Mid(proxy.Find("//")+2);
+		if(wxGetEnv(wxT("http_proxy"),&proxy)) {
+			if(proxy.Find(wxT("//")) > -1) {
+				proxy = proxy.Mid(proxy.Find(wxT("//"))+2);
 			}
 			url.SetProxy(proxy);
 		}
@@ -119,7 +119,7 @@
 		// wxInputStream *data = url.GetInputStream(fullurl);
 
 		if ( data ) {
-			wxProgressDialog progress("Progress",message,(int)data->GetSize());
+			wxProgressDialog progress(wxT("Progress"),message,(int)data->GetSize());
 			wxFileOutputStream outputfile(targetfilename);
 			while(!data->Eof() && current_progress!=data->GetSize()) {
 				data->Read((void *)buffer,1024);
@@ -131,10 +131,10 @@
 			// printf("Downloading Done\n");
 			delete data;
 		} else {
-			wxMessageDialog errordlg(parent,"An error occured while downloading","Error",wxOK|wxICON_ERROR);
+			wxMessageDialog errordlg(parent,wxT("An error occured while downloading"),wxT("Error"),wxOK|wxICON_ERROR);
 			errordlg.ShowModal();
 		}
-		patternfile = fopen((const char *)targetfilename,"r");
+		patternfile = fopen((const char *)targetfilename.mb_str(wxConvUTF8),"r");
 		return(patternfile != NULL);
 	}
 }
--- a/src/jmdlx/print.cpp
+++ b/src/jmdlx/print.cpp
@@ -34,7 +34,7 @@
 END_EVENT_TABLE()
 
 Print::Print(wxWindow *parent, JMLib *j)
-	: wxDialog(parent, -1, "Print",
+	: wxDialog(parent, -1, wxT("Print"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) {
 
@@ -44,8 +44,8 @@
 
   // Filename
 	wxBoxSizer *filenamesizer = new wxBoxSizer(wxHORIZONTAL);
-	filename = new wxTextCtrl(this,-1,jmlib->getPattName());
-	filenamesizer->Add(new wxStaticText(this, 0, "Filename"),
+	filename = new wxTextCtrl(this,-1,wxString(jmlib->getPattName(), wxConvUTF8));
+	filenamesizer->Add(new wxStaticText(this, 0, wxT("Filename")),
                                         0,
                                         wxALIGN_CENTER_VERTICAL|wxALL,
                                         5);
@@ -54,7 +54,7 @@
                         wxALIGN_CENTRE_VERTICAL|wxALL,
                         5);
 
-	filenamesizer->Add(new wxButton(this, CHOOSEFILE, "Choose File"),
+	filenamesizer->Add(new wxButton(this, CHOOSEFILE, wxT("Choose File")),
                         1,
                         wxALIGN_CENTRE_VERTICAL|wxALL,
                         5);
@@ -62,16 +62,16 @@
   // Output Type
 	wxBoxSizer *typesizer = new wxBoxSizer(wxHORIZONTAL);
 	output_type = new wxChoice(this,-1);
-	output_type->Append("Image");
-	output_type->Append("PostScript");
-	output_type->SetStringSelection("PostScript");
+	output_type->Append(wxT("Image"));
+	output_type->Append(wxT("PostScript"));
+	output_type->SetStringSelection(wxT("PostScript"));
 
 #ifdef HAVE_AVCODEC_H
 	output_type->Append("MPEG");
 	output_type->SetStringSelection("MPEG");
 #endif
 
-	typesizer->Add(new wxStaticText(this, 0, "Output Type"),
+	typesizer->Add(new wxStaticText(this, 0, wxT("Output Type")),
                                         0,
                                         wxALIGN_CENTER_VERTICAL|wxALL,
                                         5);
@@ -123,26 +123,26 @@
 				10000,
 				1000);
 
-	whdm->Add(new wxStaticText(this, 0, "Output Width"),
+	whdm->Add(new wxStaticText(this, 0, wxT("Output Width")),
 				1, wxALIGN_RIGHT|wxALL, 5);
 	whdm->Add(output_width,
 				1, wxALIGN_CENTRE|wxALL, 5);
-	whdm->Add(new wxStaticText(this, 0, "Output Height"),
+	whdm->Add(new wxStaticText(this, 0, wxT("Output Height")),
 				1, wxALIGN_RIGHT|wxALL, 5);
 	whdm->Add(output_height,
 				1, wxALIGN_CENTRE|wxALL, 5);
-	whdm->Add(new wxStaticText(this, 0, "Delay"),
+	whdm->Add(new wxStaticText(this, 0, wxT("Delay")),
 				1, wxALIGN_RIGHT|wxALL, 5);
 	whdm->Add(delay,
 				1, wxALIGN_CENTRE|wxALL, 5);
-	whdm->Add(new wxStaticText(this, 0, "Max Iterations"),
+	whdm->Add(new wxStaticText(this, 0, wxT("Max Iterations")),
 				1, wxALIGN_RIGHT|wxALL, 5);
 	whdm->Add(max_iterations,
 				1, wxALIGN_CENTRE|wxALL, 5);
 
   // Width, Height, Delay, Max Frames
-	wxButton *ok = new wxButton(this, wxID_OK, "OK");
-	wxButton *cancel = new wxButton(this, wxID_CANCEL, "Cancel");
+	wxButton *ok = new wxButton(this, wxID_OK, wxT("OK"));
+	wxButton *cancel = new wxButton(this, wxID_CANCEL, wxT("Cancel"));
 	wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
 	buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
 	buttonsizer->Add(cancel, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -173,10 +173,10 @@
 	struct stat buf; /* for stat */
 	wxMessageDialog* message;
 
-	if(stat((const char *)filename->GetValue(),&buf) != -1) {
+	if(stat((const char *)filename->GetValue().mb_str(wxConvUTF8),&buf) != -1) {
 		message = new wxMessageDialog(this,
-			"File Already Exists! Overwrite?",
-			"Overwrite?",
+			wxT("File Already Exists! Overwrite?"),
+			wxT("Overwrite?"),
 			wxYES_NO|wxICON_EXCLAMATION);
 		if(message->ShowModal() != wxID_YES) {
 			delete outputfile;
@@ -197,23 +197,23 @@
 		for (i=0; i<400; i++) jmlib->doJuggle();
 	}
 
-	if (output_type->GetStringSelection() == "Image") {
+	if (output_type->GetStringSelection() == wxT("Image")) {
 		print_success = printImage();
 	}
 
-	if (output_type->GetStringSelection() == "PostScript") {
+	if (output_type->GetStringSelection() == wxT("PostScript")) {
 		print_success = printPS();
 	}
 
 #ifdef HAVE_AVCODEC_H
-	if (output_type->GetStringSelection() == "MPEG") {
+	if (output_type->GetStringSelection() == wxT("MPEG")) {
 		print_success = printMPEG();
 	}
 #endif
 
 	if(print_success != 0) {
 		wxMessageDialog message(this,
-				"Printing Aborted!", "Aborted",
+				wxT("Printing Aborted!"), wxT("Aborted"),
 				wxOK|wxICON_EXCLAMATION);
 		message.ShowModal();
 		wxRemoveFile(filename->GetValue());
@@ -233,8 +233,8 @@
 
 void Print::OnChooseFile(wxCommandEvent &WXUNUSED(event)) {
 	wxFileDialog filedialog(this, _("Choose a File to Print to"),
-		lastpath, "",
-		"All Files|*",
+		lastpath, wxT(""),
+		wxT("All Files|*"),
 		wxSAVE);
 
 	if(filedialog.ShowModal() != wxID_OK) return;
@@ -250,7 +250,7 @@
 
 
 int Print::printImage() {
-	wxDialog formatchooser(this, -1, "Choose Format",
+	wxDialog formatchooser(this, -1, wxT("Choose Format"),
 			wxDefaultPosition, wxDefaultSize,
 			wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER);
 
@@ -273,11 +273,11 @@
 		extn = handler->GetExtension();
 		/* Don't append if wx doesn't support writing */
 		if(extn.Len() > 0 &&
-			extn != "cur" && /* Silly format */
-			extn != "ico" && /* Silly format */
-			extn != "iff" && /* wx Doesn't support writing */
-			extn != "gif" && /* wx Doesn't support writing */
-			extn != "ani" /* wx Doesn't support writing */
+			extn != wxT("cur") && /* Silly format */
+			extn != wxT("ico") && /* Silly format */
+			extn != wxT("iff") && /* wx Doesn't support writing */
+			extn != wxT("gif") && /* wx Doesn't support writing */
+			extn != wxT("ani") /* wx Doesn't support writing */
 			) {
 			formatchoice->Append(handler->GetExtension(), (void *)handler);
 			if(extn == fileextn) {
@@ -289,14 +289,14 @@
 	}
 
 	if(formatfound == 0) {
-		int png_pos = formatchoice->FindString("png");
+		int png_pos = formatchoice->FindString(wxT("png"));
 		if(-1 != png_pos) formatchoice->SetSelection(png_pos);
 		else formatchoice->SetSelection(0);
 	}
 
 
-	wxButton *ok = new wxButton(&formatchooser, wxID_OK, "OK");
-	wxButton *cancel = new wxButton(&formatchooser, wxID_CANCEL, "Cancel");
+	wxButton *ok = new wxButton(&formatchooser, wxID_OK, wxT("OK"));
+	wxButton *cancel = new wxButton(&formatchooser, wxID_CANCEL, wxT("Cancel"));
 	wxBoxSizer *buttonsizer = new wxBoxSizer(wxHORIZONTAL);
 	buttonsizer->Add(ok, 1, wxALIGN_CENTRE|wxALL, 5);
 	buttonsizer->Add(cancel, 1, wxALIGN_CENTRE|wxALL, 5);
@@ -347,7 +347,7 @@
 				balls were when we started, and check
 				against it */
 
-	wxProgressDialog progress("Progress","Creating PostScript",
+	wxProgressDialog progress(wxT("Progress"),wxT("Creating PostScript"),
 		max_iterations->GetValue(), this,
 		wxPD_APP_MODAL|wxPD_CAN_ABORT);
 
@@ -362,7 +362,7 @@
 	ball* lhand = &(jmlib->lhand);
 	hand* handp = &(jmlib->handpoly);
 
-	outputfile = fopen((const char *)filename->GetValue(),"w");
+	outputfile = fopen((const char *)filename->GetValue().mb_str(wxConvUTF8),"w");
 	if(outputfile == NULL) return 1;
 
 	/* Some PS guff */
@@ -732,7 +732,7 @@
 		dc->DrawEllipse(j->b[i].gx, j->b[i].gy, diam, diam);
 	}
 	wxString balltext;
-	balltext.Printf("Site: %s    Style: %s    Balls: %i",j->getSite(),j->getStyle(),j->balln);
+	balltext.Printf(wxT("Site: %s    Style: %s    Balls: %i"),j->getSite(),j->getStyle(),j->balln);
 	dc->DrawText(balltext, 10, 10);
 
 }

--- End Message ---
--- Begin Message ---
Source: jugglemaster
Source-Version: 0.4-6

We believe that the bug you reported is fixed in the latest version of
jugglemaster, which is due to be installed in the Debian FTP archive:

aajm_0.4-6_amd64.deb
  to main/j/jugglemaster/aajm_0.4-6_amd64.deb
jmdlx_0.4-6_amd64.deb
  to main/j/jugglemaster/jmdlx_0.4-6_amd64.deb
jugglemaster_0.4-6.debian.tar.gz
  to main/j/jugglemaster/jugglemaster_0.4-6.debian.tar.gz
jugglemaster_0.4-6.dsc
  to main/j/jugglemaster/jugglemaster_0.4-6.dsc



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Helmut Grohne <[email protected]> (supplier of updated jugglemaster package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 25 Nov 2011 11:29:40 +0100
Source: jugglemaster
Binary: aajm jmdlx
Architecture: source amd64
Version: 0.4-6
Distribution: unstable
Urgency: low
Maintainer: Debian Games Team <[email protected]>
Changed-By: Helmut Grohne <[email protected]>
Description: 
 aajm       - ASCII art version of jugglemaster
 jmdlx      - jugglemaster deluxe using wxWidgets
Closes: 630190 631700 645408 645409
Changes: 
 jugglemaster (0.4-6) unstable; urgency=low
 .
   * Fix "[aajm] Broken pronoun "It" (JuggleMaster) in extended
     description" updated control, thanks to Filipus Klutiero (Closes: #630190)
   * Bumped Standards-Version to 3.9.2, no changes needed.
   * Fix "Error in patch 010_wx26_trans.patch" updated patch, thanks to
     Olly Betts (Closes: #645409)
   * Fix "update jugglemaster to use wxwidgets2.8" applied and tested patch from
     Olly Betts (Closes: #645408)
   * Fix "FTBFS with ld --as-needed" applied patch from Ilya Barygin
     (Closes: #631700)
   * Fix for "Change Siteswap (simple)".  Every siteswap was regarded as 
invalid,
     due to the new pattern being garbage collected before being used. Now we
     keep an explicit reference.
Checksums-Sha1: 
 7b074d94c07de95bee3bdbed3c9f13d7cb414a82 1380 jugglemaster_0.4-6.dsc
 a8e51bbf36fa5de47eb8419b1fa044d428c06cdb 18778 jugglemaster_0.4-6.debian.tar.gz
 bfb7fdef880e663a6a7e5874ad2003be87939269 26066 aajm_0.4-6_amd64.deb
 23b3df999c821e5effe7b77fe024e0429e2570d5 90018 jmdlx_0.4-6_amd64.deb
Checksums-Sha256: 
 f79162ebc4df3686c4a1c3df7b241f0031654755446d78976fc0d2d37240b962 1380 
jugglemaster_0.4-6.dsc
 e298c6ac3a812a720f806cd446be94d44c494870585cca6949b586d60c8c689b 18778 
jugglemaster_0.4-6.debian.tar.gz
 8febe3e8fbaf063c56269ba52a39fe0e1c5fd76325a91634f05e9623badb74f3 26066 
aajm_0.4-6_amd64.deb
 279f8ac7c53cf55f3eed38568935528b62c746151c3a8dadc6ba231c2408a9db 90018 
jmdlx_0.4-6_amd64.deb
Files: 
 9c2abe77eadcef276a68637fa57c3982 1380 games extra jugglemaster_0.4-6.dsc
 700934f1eb2bb524def379dcb9266033 18778 games extra 
jugglemaster_0.4-6.debian.tar.gz
 2f743d329292180d201efe5d2fb6142f 26066 games extra aajm_0.4-6_amd64.deb
 1dfa04901f000b6e434bc4139d9e7eff 90018 games extra jmdlx_0.4-6_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk7PgaoACgkQ5Sc9mGvjxCOc8QCglNvjmDf0EzEvZNeVfyBd/4Nm
SU8AnRt5FNp0EwVid3apfXz4xEuM1YHh
=lKgU
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to