View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0001658 | Scribus | Scripter | public | 2005-02-10 07:55 | 2005-03-01 07:07 |
| Reporter | Assigned To | ||||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | x86 Linux | OS | Fedora Core | OS Version | 3 |
| Product Version | 1.3.0cvs | ||||
| Fixed in Version | 1.3.0cvs | ||||
| Summary | 0001658: PATCH: Minor scripter fixes, initialize variable in ScrAction constructor | ||||
| Description | This patch includes three scripter fixes: - fix scriptplugin.cpp:tr()'s string handling - more correctly create the unicode string for the top-level docstring - fix incorrect line wrapping in top level docstring It also ensures that the ScrAction constructors all initialize containerWidgetAddedTo correctly. | ||||
| Tags | No tags attached. | ||||
| Attached Files | valgrind_bugs_1.diff (4,396 bytes)
Index: scraction.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/Attic/scraction.cpp,v
retrieving revision 1.1.2.10
diff -u -r1.1.2.10 scraction.cpp
--- scraction.cpp 31 Jan 2005 00:11:53 -0000 1.1.2.10
+++ scraction.cpp 10 Feb 2005 08:43:25 -0000
@@ -23,6 +23,7 @@
menuType=ScrAction::Normal;
menuIndex=-1;
widgetAddedTo=NULL;
+ containerWidgetAddedTo=NULL;
}
ScrAction::ScrAction( const QString & menuText, QKeySequence accel, QObject * parent, const char * name ) : QAction( menuText, accel, parent, name )
@@ -30,6 +31,7 @@
menuType=ScrAction::Normal;
menuIndex=-1;
widgetAddedTo=NULL;
+ containerWidgetAddedTo=NULL;
}
ScrAction::ScrAction( MenuType mType, const QIconSet & icon, const QString & menuText, QKeySequence accel, QObject * parent, const char * name, int extraInt, double extraDouble, QString extraQString ) : QAction( icon, menuText, accel, parent, name )
@@ -37,6 +39,7 @@
setIconSizes();
menuIndex=-1;
widgetAddedTo=NULL;
+ containerWidgetAddedTo=NULL;
menuType=mType;
switch (mType)
{
@@ -78,6 +81,7 @@
setIconSizes();
menuIndex=-1;
widgetAddedTo=NULL;
+ containerWidgetAddedTo=NULL;
}
ScrAction::~ScrAction()
Index: plugins/scriptplugin/scriptplugin.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp,v
retrieving revision 1.33.2.43
diff -u -r1.33.2.43 scriptplugin.cpp
--- plugins/scriptplugin/scriptplugin.cpp 9 Feb 2005 12:00:24 -0000 1.33.2.43
+++ plugins/scriptplugin/scriptplugin.cpp 10 Feb 2005 08:43:25 -0000
@@ -640,8 +640,13 @@
* a text string in a particular text encoding.
*/
//QCString utfTranslated = translated.utf8();
- const char* trch = translated.utf8().data();
- return strndup(trch, strlen(trch));
+ QCString trch = translated.utf8();
+ char* utfstr = strdup(trch.data());
+ if (!utfstr)
+ // Complain, but then return NULL anyway. Python will treat NULL as
+ // "no value" so that's fine.
+ qDebug("scriptplugin.cpp:tr() - strdup() failure");
+ return utfstr;
}
/* Now we're using the more pythonic convention for names:
@@ -998,11 +1003,11 @@
optional (non-keyword) parameter, a frame name.\n\
Many exceptions are also common across most functions. These are\n\
not currently documented in the docstring for each function.\n\
-- Many functions will raise a NoDocOpenError if you try to use them\
+- Many functions will raise a NoDocOpenError if you try to use them\n\
without a document to operate on.\n\
-- If you do not pass a frame name to a function that requires one,\
-the function will use the currently selected frame, if any, or\
-raise a NoValidObjectError if it can't find anything to operate\
+- If you do not pass a frame name to a function that requires one,\n\
+the function will use the currently selected frame, if any, or\n\
+raise a NoValidObjectError if it can't find anything to operate\n\
on.\n\
- Many functions will raise WrongFrameTypeError if you try to use them\n\
on a frame type that they do not make sense with. For example, setting\n\
@@ -1013,15 +1018,25 @@
any function as provided here and in its docstring is incomplete.\n\
\n\
Details of what exceptions each function may throw are provided on the\n\
-function's documentation.");
+function's documentation, though as with most Python code this list\n\
+is not exhaustive due to exceptions from called functions.\n\
+");
- // Py_UNICODE is a typedef for unsigned short
- PyObject* uniDocStr = Py_BuildValue(const_cast<char*>("u"), (Py_UNICODE*)(docstring.ucs2()));
- if (uniDocStr == NULL)
- qDebug("Failed to create module-level docstring object!");
+ PyObject* docStr = PyString_FromString(docstring.utf8().data());
+ if (!docStr)
+ qDebug("Failed to create module-level docstring (couldn't make str)");
else
- PyDict_SetItemString(d, const_cast<char*>("__doc__"), uniDocStr);
- Py_DECREF(uniDocStr);
+ {
+ PyObject* uniDocStr = PyUnicode_FromEncodedObject(docStr, "utf-8", NULL);
+ Py_DECREF(docStr);
+ docStr = NULL;
+ if (!uniDocStr)
+ qDebug("Failed to create module-level docstring object (couldn't make unicode)");
+ else
+ PyDict_SetItemString(d, const_cast<char*>("__doc__"), uniDocStr);
+ Py_DECREF(uniDocStr);
+ uniDocStr = NULL;
+ }
// Wrap up pointers to the the QApp and main window and push them out
// to Python.
| ||||
| Patch | |||||
| child of | 0003813 | acknowledged | Metabug: Scripter |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2005-02-10 07:55 |
|
New Issue | |
| 2005-02-10 07:55 |
|
File Added: valgrind_bugs_1.diff | |
| 2005-02-10 07:56 |
|
Note Added: 0003676 | |
| 2005-02-10 16:10 | subik | Note Added: 0003681 | |
| 2005-03-01 07:02 |
|
Status | new => assigned |
| 2005-03-01 07:02 |
|
Assigned To | => ringerc |
| 2005-03-01 07:07 |
|
Status | assigned => closed |
| 2005-03-01 07:07 |
|
Resolution | open => fixed |
| 2005-03-01 07:07 |
|
Fixed in Version | => 1.3.0cvs |
| 2006-05-13 21:45 | christoph_s | Relationship added | child of 0003813 |