diff options
22 files changed, 203 insertions, 890 deletions
diff --git a/examples/xml/dombookmarks/frank.xbel b/examples/xml/dombookmarks/frank.xbel deleted file mode 100644 index 2fd5c2e09d..0000000000 --- a/examples/xml/dombookmarks/frank.xbel +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE xbel> -<xbel version="1.0"> - <folder folded="yes"> - <title>Literate Programming</title> - <bookmark href="http://www.vivtek.com/litprog.html"> - <title>Synopsis of Literate Programming</title> - </bookmark> - <bookmark href="http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html"> - <title>Literate Programming: Propaganda and Tools</title> - </bookmark> - <bookmark href="http://www.isy.liu.se/%7Eturbell/litprog/"> - <title>Literate Programming by Henrik Turbell</title> - </bookmark> - <bookmark href="http://www.desy.de/user/projects/LitProg.html"> - <title>Literate Programming Library</title> - </bookmark> - <bookmark href="http://www.loria.fr/services/tex/english/litte.html"> - <title>Literate Programming Basics</title> - </bookmark> - <bookmark href="http://ei.cs.vt.edu/%7Ecs5014/courseNotes/4.LiterateProgramming/literate_prog.html"> - <title>Literate Programming Overview</title> - </bookmark> - <bookmark href="http://www.perl.com/pub/a/tchrist/litprog.html"> - <title>POD is not Literate Programming</title> - </bookmark> - <bookmark href="http://www.cornellcollege.edu/%7Eltabak/publications/articles/swsafety.html"> - <title>Computers That We Can Count On</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/litpro/issues-and-problems.html"> - <title>Literate Programming - Issues and Problems</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?LiterateProgramming"> - <title>Literate Programming - Wiki Pages</title> - </bookmark> - <bookmark href="http://developers.slashdot.org/developers/02/05/19/2216233.shtml"> - <title>What is well-commented code?</title> - </bookmark> - <bookmark href="http://liinwww.ira.uka.de/bibliography/SE/litprog.html"> - <title>Bibliography on literate programming - A searchable bibliography</title> - </bookmark> - <bookmark href="http://www2.umassd.edu/SWPI/ProcessBibliography/bib-codereading.html"> - <title>Program comprehension and code reading bibliography</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/elucidative-programming/"> - <title>Elucidative Programming</title> - </bookmark> - <bookmark href="http://www.msu.edu/%7Epfaffben/avl/index.html"> - <title>AVL Trees (TexiWeb)</title> - </bookmark> - <bookmark href="http://literate-programming.wikiverse.org/"> - <title>Literate Programming on Wikiverse</title> - </bookmark> - <bookmark href="http://www.pbrt.org/"> - <title>Physically Based Rendering: From Theory to Implementation</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Useful C++ Links</title> - <folder folded="no"> - <title>STL</title> - <bookmark href="http://www.sgi.com/tech/stl/table_of_contents.html"> - <title>STL Reference Documentation</title> - </bookmark> - <bookmark href="http://www.yrl.co.uk/~phil/stl/stl.htmlx"> - <title>STL Tutorial</title> - </bookmark> - <bookmark href="http://www.cppreference.com/cpp_stl.html"> - <title>STL Reference</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Qt</title> - <bookmark href="http://doc.qt.digia.com/2.3/"> - <title>Qt 2.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/3.3/"> - <title>Qt 3.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 Reference</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>Qt Home Page</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>IOStreams</title> - <bookmark href="http://www.cplusplus.com/ref/iostream/index.html"> - <title>IO Stream Library</title> - </bookmark> - <bookmark href="http://courses.cs.vt.edu/~cs2604/fall01/binio.html"> - <title>Binary I/O</title> - </bookmark> - <bookmark href="http://www.parashift.com/c++-faq-lite/input-output.html"> - <title>I/O Stream FAQ</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>gdb</title> - <bookmark href="http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html"> - <title>GDB Tutorial</title> - </bookmark> - <bookmark href="http://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html"> - <title>Debugging with GDB</title> - </bookmark> - <bookmark href="http://www.cs.washington.edu/orgs/acm/tutorials/dev-in-unix/gdb-refcard.pdf"> - <title>GDB Quick Reference Page (PDF) (Handy)</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Classes and Constructors</title> - <bookmark href="http://www.parashift.com/c++-faq-lite/ctors.html"> - <title>Constructor FAQ</title> - </bookmark> - <bookmark href="http://www.juicystudio.com/tutorial/cpp/index.html"> - <title>Organizing Classes</title> - </bookmark> - </folder> - </folder> - <folder folded="yes"> - <title>Software Documentation or System Documentation</title> - <bookmark href="http://www.martinfowler.com/distributedComputing/thud.html"> - <title>The Almighty Thud</title> - </bookmark> - <bookmark href="http://msdn.microsoft.com/library/techart/cfr.htm"> - <title>Microsoft Coding Techniques and Programming Practices</title> - </bookmark> - <bookmark href="http://www.bearcave.com/software/prog_docs.html"> - <title>Software and Documentation</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?TheSourceCodeIsTheDesign"> - <title>The Source Code is the Design</title> - </bookmark> - <bookmark href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm"> - <title>What is Software Design?</title> - </bookmark> - <bookmark href="http://www.mindprod.com/unmain.html"> - <title>How To Write Unmaintainable Code</title> - </bookmark> - <bookmark href="http://www.idinews.com/selfDoc.html"> - <title>Self Documenting Program Code Remains a Distant Goal</title> - </bookmark> - <bookmark href="http://www.sdmagazine.com/documents/s=730/sdm0106m/0106m.htm"> - <title>Place Tab A in Slot B</title> - </bookmark> - <bookmark href="http://www.holub.com/class/uml/uml.html"> - <title>UML Reference Card</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>TeX Resources</title> - <bookmark href="http://www.tug.org/"> - <title>The TeX User's Group</title> - </bookmark> - <bookmark href="http://www.miktex.org/"> - <title>MikTeX website</title> - </bookmark> - <bookmark href="http://cm.bell-labs.com/who/hobby/MetaPost.html"> - <title>MetaPost website</title> - </bookmark> - <bookmark href="http://pauillac.inria.fr/%7Emaranget/hevea/"> - <title>HEVEA is a quite complete and fast LATEX to HTML translator</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Portable Document Format (PDF)</title> - <bookmark href="http://www.adobe.com/"> - <title>Adobe - The postscript and PDF standards</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html"> - <title>Reference Manual Portable Document Format</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/acrosdk/main.html"> - <title>Adobe Acrobat Software Development Kit</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Literature Sites</title> - <bookmark href="http://www.cc.columbia.edu/cu/libraries/subjects/speccol.html"> - <title>Guide to Special Collections (Columbia University)</title> - </bookmark> - <bookmark href="http://www.ipl.org/ref/litcrit/"> - <title>Literary Criticism on the Web from the Internet Public Library</title> - </bookmark> - <bookmark href="http://www.victorianweb.org/"> - <title>Victorian Web.</title> - </bookmark> - <bookmark href="http://vos.ucsb.edu/"> - <title>Voice of the Shuttle.</title> - </bookmark> - <bookmark href="http://www.modjourn.brown.edu/"> - <title>Modernist Journals Project</title> - </bookmark> - <bookmark href="http://www.poetspath.com"> - <title>Museum of American Poetics</title> - </bookmark> - <bookmark href="http://www.english.uiuc.edu/maps/"> - <title>Modern American Poetry</title> - </bookmark> - <bookmark href="http://www.findarticles.com/"> - <title>FindArticles.com</title> - </bookmark> - <bookmark href="http://www.literaryhistory.com"> - <title>Literary History</title> - </bookmark> - <bookmark href="http://www.litencyc.com/LitEncycFrame.htm"> - <title>Literary Encyclopedia</title> - </bookmark> - <separator/> - <bookmark href="http://texts.cdlib.org/ucpress/"> - <title>The University of California Press</title> - </bookmark> - <bookmark href="http://www.letrs.indiana.edu/web/w/wright2/"> - <title>Wright American Fiction, 1851-1875</title> - </bookmark> - <bookmark href="http://docsouth.unc.edu/"> - <title>Documenting the American South: Beginnings to 1920</title> - </bookmark> - <bookmark href="http://etext.lib.virginia.edu/eng-on.html"> - <title>Electronic Text Center at the University of Virginia</title> - </bookmark> - <bookmark href="http://digital.nypl.org/schomburg/writers_aa19/"> - <title>The Schomburg Center for Research in Black Culture</title> - </bookmark> - <bookmark href="http://www.infomotions.com/alex2/"> - <title>Alex Catalogue of Electronic Texts.</title> - </bookmark> - </folder> -</xbel> diff --git a/examples/xml/dombookmarks/jennifer.xbel b/examples/xml/dombookmarks/jennifer.xbel index 74b7f1519f..2501c118af 100644 --- a/examples/xml/dombookmarks/jennifer.xbel +++ b/examples/xml/dombookmarks/jennifer.xbel @@ -3,60 +3,42 @@ <xbel version="1.0"> <folder folded="no"> <title>Qt Resources</title> - <folder folded="yes"> + <bookmark href="http://qt.io/"> + <title>Qt home page</title> + </bookmark> + <bookmark href="https://www.qt.io/partners/"> <title>Qt Partners</title> - <bookmark href="http://partners.trolltech.com/partners/training.html"> - <title>Training Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/service.html"> - <title>Consultants and System Integrators</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/tech.html"> - <title>Technology Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/resellers.html"> - <title>Value Added Resellers (VARs)</title> - </bookmark> - </folder> + </bookmark> + <bookmark href="https://www.qt.io/qt-training/"> + <title>Training</title> + </bookmark> + <bookmark href="http://doc.qt.io/"> + <title>Qt 5 documentation</title> + </bookmark> + <bookmark href="http://qt-project.org/faq/"> + <title>Frequently Asked Questions</title> + </bookmark> <folder folded="yes"> <title>Community Resources</title> + <bookmark href="http://www.qtcentre.org/content/"> + <title>Qt Centre</title> + </bookmark> <bookmark href="http://www.qtforum.org/"> <title>QtForum.org</title> </bookmark> - <bookmark href="http://www.digitalfanatics.org/projects/qt_tutorial/"> + <bookmark href="http://digitalfanatics.org/projects/qt_tutorial/"> <title>The Independent Qt Tutorial</title> </bookmark> - <bookmark href="http://prog.qt.free.fr/"> - <title>French PROG.Qt</title> - </bookmark> <bookmark href="http://www.qtforum.de/"> <title>German Qt Forum</title> </bookmark> <bookmark href="http://www.korone.net/"> <title>Korean Qt Community Site</title> </bookmark> - <bookmark href="http://prog.org.ru/forum/forum_14.html"> + <bookmark href="http://prog.org.ru/"> <title>Russian Qt Forum</title> </bookmark> - <bookmark href="http://qt4.digitalfanatics.org/"> - <title>Digitalfanatics: The QT 4 Resource Center</title> - </bookmark> - <bookmark href="http://www.qtquestions.org/"> - <title>QtQuestions</title> - </bookmark> </folder> - <bookmark href="http://doc.qt.digia.com/qq/"> - <title>Qt Quarterly</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>Qt home page</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 documentation</title> - </bookmark> - <bookmark href="http://qt-project.org/faq/"> - <title>Frequently Asked Questions</title> - </bookmark> </folder> <folder folded="no"> <title>Online Dictionaries</title> @@ -73,9 +55,6 @@ <title>OneLook Dictionary Search</title> </bookmark> <separator/> - <bookmark href="www.iee.et.tu-dresden.de/"> - <title>The New English-German Dictionary</title> - </bookmark> <bookmark href="http://dict.tu-chemnitz.de/"> <title>TU Chemnitz German-English Dictionary</title> </bookmark> @@ -86,8 +65,5 @@ <bookmark href="http://dictionnaires.atilf.fr/dictionnaires/ACADEMIE/"> <title>Dictionnaire de l'Académie Française</title> </bookmark> - <bookmark href="http://elsap1.unicaen.fr/cgi-bin/cherches.cgi"> - <title>Dictionnaire des synonymes</title> - </bookmark> </folder> </xbel> diff --git a/examples/xml/saxbookmarks/frank.xbel b/examples/xml/saxbookmarks/frank.xbel deleted file mode 100644 index 2fd5c2e09d..0000000000 --- a/examples/xml/saxbookmarks/frank.xbel +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE xbel> -<xbel version="1.0"> - <folder folded="yes"> - <title>Literate Programming</title> - <bookmark href="http://www.vivtek.com/litprog.html"> - <title>Synopsis of Literate Programming</title> - </bookmark> - <bookmark href="http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html"> - <title>Literate Programming: Propaganda and Tools</title> - </bookmark> - <bookmark href="http://www.isy.liu.se/%7Eturbell/litprog/"> - <title>Literate Programming by Henrik Turbell</title> - </bookmark> - <bookmark href="http://www.desy.de/user/projects/LitProg.html"> - <title>Literate Programming Library</title> - </bookmark> - <bookmark href="http://www.loria.fr/services/tex/english/litte.html"> - <title>Literate Programming Basics</title> - </bookmark> - <bookmark href="http://ei.cs.vt.edu/%7Ecs5014/courseNotes/4.LiterateProgramming/literate_prog.html"> - <title>Literate Programming Overview</title> - </bookmark> - <bookmark href="http://www.perl.com/pub/a/tchrist/litprog.html"> - <title>POD is not Literate Programming</title> - </bookmark> - <bookmark href="http://www.cornellcollege.edu/%7Eltabak/publications/articles/swsafety.html"> - <title>Computers That We Can Count On</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/litpro/issues-and-problems.html"> - <title>Literate Programming - Issues and Problems</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?LiterateProgramming"> - <title>Literate Programming - Wiki Pages</title> - </bookmark> - <bookmark href="http://developers.slashdot.org/developers/02/05/19/2216233.shtml"> - <title>What is well-commented code?</title> - </bookmark> - <bookmark href="http://liinwww.ira.uka.de/bibliography/SE/litprog.html"> - <title>Bibliography on literate programming - A searchable bibliography</title> - </bookmark> - <bookmark href="http://www2.umassd.edu/SWPI/ProcessBibliography/bib-codereading.html"> - <title>Program comprehension and code reading bibliography</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/elucidative-programming/"> - <title>Elucidative Programming</title> - </bookmark> - <bookmark href="http://www.msu.edu/%7Epfaffben/avl/index.html"> - <title>AVL Trees (TexiWeb)</title> - </bookmark> - <bookmark href="http://literate-programming.wikiverse.org/"> - <title>Literate Programming on Wikiverse</title> - </bookmark> - <bookmark href="http://www.pbrt.org/"> - <title>Physically Based Rendering: From Theory to Implementation</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Useful C++ Links</title> - <folder folded="no"> - <title>STL</title> - <bookmark href="http://www.sgi.com/tech/stl/table_of_contents.html"> - <title>STL Reference Documentation</title> - </bookmark> - <bookmark href="http://www.yrl.co.uk/~phil/stl/stl.htmlx"> - <title>STL Tutorial</title> - </bookmark> - <bookmark href="http://www.cppreference.com/cpp_stl.html"> - <title>STL Reference</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Qt</title> - <bookmark href="http://doc.qt.digia.com/2.3/"> - <title>Qt 2.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/3.3/"> - <title>Qt 3.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 Reference</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>Qt Home Page</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>IOStreams</title> - <bookmark href="http://www.cplusplus.com/ref/iostream/index.html"> - <title>IO Stream Library</title> - </bookmark> - <bookmark href="http://courses.cs.vt.edu/~cs2604/fall01/binio.html"> - <title>Binary I/O</title> - </bookmark> - <bookmark href="http://www.parashift.com/c++-faq-lite/input-output.html"> - <title>I/O Stream FAQ</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>gdb</title> - <bookmark href="http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html"> - <title>GDB Tutorial</title> - </bookmark> - <bookmark href="http://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html"> - <title>Debugging with GDB</title> - </bookmark> - <bookmark href="http://www.cs.washington.edu/orgs/acm/tutorials/dev-in-unix/gdb-refcard.pdf"> - <title>GDB Quick Reference Page (PDF) (Handy)</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Classes and Constructors</title> - <bookmark href="http://www.parashift.com/c++-faq-lite/ctors.html"> - <title>Constructor FAQ</title> - </bookmark> - <bookmark href="http://www.juicystudio.com/tutorial/cpp/index.html"> - <title>Organizing Classes</title> - </bookmark> - </folder> - </folder> - <folder folded="yes"> - <title>Software Documentation or System Documentation</title> - <bookmark href="http://www.martinfowler.com/distributedComputing/thud.html"> - <title>The Almighty Thud</title> - </bookmark> - <bookmark href="http://msdn.microsoft.com/library/techart/cfr.htm"> - <title>Microsoft Coding Techniques and Programming Practices</title> - </bookmark> - <bookmark href="http://www.bearcave.com/software/prog_docs.html"> - <title>Software and Documentation</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?TheSourceCodeIsTheDesign"> - <title>The Source Code is the Design</title> - </bookmark> - <bookmark href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm"> - <title>What is Software Design?</title> - </bookmark> - <bookmark href="http://www.mindprod.com/unmain.html"> - <title>How To Write Unmaintainable Code</title> - </bookmark> - <bookmark href="http://www.idinews.com/selfDoc.html"> - <title>Self Documenting Program Code Remains a Distant Goal</title> - </bookmark> - <bookmark href="http://www.sdmagazine.com/documents/s=730/sdm0106m/0106m.htm"> - <title>Place Tab A in Slot B</title> - </bookmark> - <bookmark href="http://www.holub.com/class/uml/uml.html"> - <title>UML Reference Card</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>TeX Resources</title> - <bookmark href="http://www.tug.org/"> - <title>The TeX User's Group</title> - </bookmark> - <bookmark href="http://www.miktex.org/"> - <title>MikTeX website</title> - </bookmark> - <bookmark href="http://cm.bell-labs.com/who/hobby/MetaPost.html"> - <title>MetaPost website</title> - </bookmark> - <bookmark href="http://pauillac.inria.fr/%7Emaranget/hevea/"> - <title>HEVEA is a quite complete and fast LATEX to HTML translator</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Portable Document Format (PDF)</title> - <bookmark href="http://www.adobe.com/"> - <title>Adobe - The postscript and PDF standards</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html"> - <title>Reference Manual Portable Document Format</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/acrosdk/main.html"> - <title>Adobe Acrobat Software Development Kit</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Literature Sites</title> - <bookmark href="http://www.cc.columbia.edu/cu/libraries/subjects/speccol.html"> - <title>Guide to Special Collections (Columbia University)</title> - </bookmark> - <bookmark href="http://www.ipl.org/ref/litcrit/"> - <title>Literary Criticism on the Web from the Internet Public Library</title> - </bookmark> - <bookmark href="http://www.victorianweb.org/"> - <title>Victorian Web.</title> - </bookmark> - <bookmark href="http://vos.ucsb.edu/"> - <title>Voice of the Shuttle.</title> - </bookmark> - <bookmark href="http://www.modjourn.brown.edu/"> - <title>Modernist Journals Project</title> - </bookmark> - <bookmark href="http://www.poetspath.com"> - <title>Museum of American Poetics</title> - </bookmark> - <bookmark href="http://www.english.uiuc.edu/maps/"> - <title>Modern American Poetry</title> - </bookmark> - <bookmark href="http://www.findarticles.com/"> - <title>FindArticles.com</title> - </bookmark> - <bookmark href="http://www.literaryhistory.com"> - <title>Literary History</title> - </bookmark> - <bookmark href="http://www.litencyc.com/LitEncycFrame.htm"> - <title>Literary Encyclopedia</title> - </bookmark> - <separator/> - <bookmark href="http://texts.cdlib.org/ucpress/"> - <title>The University of California Press</title> - </bookmark> - <bookmark href="http://www.letrs.indiana.edu/web/w/wright2/"> - <title>Wright American Fiction, 1851-1875</title> - </bookmark> - <bookmark href="http://docsouth.unc.edu/"> - <title>Documenting the American South: Beginnings to 1920</title> - </bookmark> - <bookmark href="http://etext.lib.virginia.edu/eng-on.html"> - <title>Electronic Text Center at the University of Virginia</title> - </bookmark> - <bookmark href="http://digital.nypl.org/schomburg/writers_aa19/"> - <title>The Schomburg Center for Research in Black Culture</title> - </bookmark> - <bookmark href="http://www.infomotions.com/alex2/"> - <title>Alex Catalogue of Electronic Texts.</title> - </bookmark> - </folder> -</xbel> diff --git a/examples/xml/saxbookmarks/jennifer.xbel b/examples/xml/saxbookmarks/jennifer.xbel index d37b8224df..2501c118af 100644 --- a/examples/xml/saxbookmarks/jennifer.xbel +++ b/examples/xml/saxbookmarks/jennifer.xbel @@ -3,60 +3,42 @@ <xbel version="1.0"> <folder folded="no"> <title>Qt Resources</title> - <folder folded="yes"> + <bookmark href="http://qt.io/"> + <title>Qt home page</title> + </bookmark> + <bookmark href="https://www.qt.io/partners/"> <title>Qt Partners</title> - <bookmark href="http://partners.trolltech.com/partners/training.html"> - <title>Training Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/service.html"> - <title>Consultants and System Integrators</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/tech.html"> - <title>Technology Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/resellers.html"> - <title>Value Added Resellers (VARs)</title> - </bookmark> - </folder> + </bookmark> + <bookmark href="https://www.qt.io/qt-training/"> + <title>Training</title> + </bookmark> + <bookmark href="http://doc.qt.io/"> + <title>Qt 5 documentation</title> + </bookmark> + <bookmark href="http://qt-project.org/faq/"> + <title>Frequently Asked Questions</title> + </bookmark> <folder folded="yes"> <title>Community Resources</title> + <bookmark href="http://www.qtcentre.org/content/"> + <title>Qt Centre</title> + </bookmark> <bookmark href="http://www.qtforum.org/"> <title>QtForum.org</title> </bookmark> - <bookmark href="http://www.digitalfanatics.org/projects/qt_tutorial/"> + <bookmark href="http://digitalfanatics.org/projects/qt_tutorial/"> <title>The Independent Qt Tutorial</title> </bookmark> - <bookmark href="http://prog.qt.free.fr/"> - <title>French PROG.Qt</title> - </bookmark> <bookmark href="http://www.qtforum.de/"> <title>German Qt Forum</title> </bookmark> <bookmark href="http://www.korone.net/"> <title>Korean Qt Community Site</title> </bookmark> - <bookmark href="http://prog.org.ru/forum/forum_14.html"> + <bookmark href="http://prog.org.ru/"> <title>Russian Qt Forum</title> </bookmark> - <bookmark href="http://qt4.digitalfanatics.org/"> - <title>Digitalfanatics: The QT 4 Resource Center</title> - </bookmark> - <bookmark href="http://www.qtquestions.org/"> - <title>QtQuestions</title> - </bookmark> </folder> - <bookmark href="http://doc.qt.digia.com/qq/"> - <title>Qt Quarterly</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>qt home page</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 documentation</title> - </bookmark> - <bookmark href="http://qt-project.org/faq/"> - <title>Frequently Asked Questions</title> - </bookmark> </folder> <folder folded="no"> <title>Online Dictionaries</title> @@ -73,9 +55,6 @@ <title>OneLook Dictionary Search</title> </bookmark> <separator/> - <bookmark href="www.iee.et.tu-dresden.de/"> - <title>The New English-German Dictionary</title> - </bookmark> <bookmark href="http://dict.tu-chemnitz.de/"> <title>TU Chemnitz German-English Dictionary</title> </bookmark> @@ -86,8 +65,5 @@ <bookmark href="http://dictionnaires.atilf.fr/dictionnaires/ACADEMIE/"> <title>Dictionnaire de l'Académie Française</title> </bookmark> - <bookmark href="http://elsap1.unicaen.fr/cgi-bin/cherches.cgi"> - <title>Dictionnaire des synonymes</title> - </bookmark> </folder> </xbel> diff --git a/examples/xml/streambookmarks/frank.xbel b/examples/xml/streambookmarks/frank.xbel deleted file mode 100644 index 2fd5c2e09d..0000000000 --- a/examples/xml/streambookmarks/frank.xbel +++ /dev/null @@ -1,230 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE xbel> -<xbel version="1.0"> - <folder folded="yes"> - <title>Literate Programming</title> - <bookmark href="http://www.vivtek.com/litprog.html"> - <title>Synopsis of Literate Programming</title> - </bookmark> - <bookmark href="http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html"> - <title>Literate Programming: Propaganda and Tools</title> - </bookmark> - <bookmark href="http://www.isy.liu.se/%7Eturbell/litprog/"> - <title>Literate Programming by Henrik Turbell</title> - </bookmark> - <bookmark href="http://www.desy.de/user/projects/LitProg.html"> - <title>Literate Programming Library</title> - </bookmark> - <bookmark href="http://www.loria.fr/services/tex/english/litte.html"> - <title>Literate Programming Basics</title> - </bookmark> - <bookmark href="http://ei.cs.vt.edu/%7Ecs5014/courseNotes/4.LiterateProgramming/literate_prog.html"> - <title>Literate Programming Overview</title> - </bookmark> - <bookmark href="http://www.perl.com/pub/a/tchrist/litprog.html"> - <title>POD is not Literate Programming</title> - </bookmark> - <bookmark href="http://www.cornellcollege.edu/%7Eltabak/publications/articles/swsafety.html"> - <title>Computers That We Can Count On</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/litpro/issues-and-problems.html"> - <title>Literate Programming - Issues and Problems</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?LiterateProgramming"> - <title>Literate Programming - Wiki Pages</title> - </bookmark> - <bookmark href="http://developers.slashdot.org/developers/02/05/19/2216233.shtml"> - <title>What is well-commented code?</title> - </bookmark> - <bookmark href="http://liinwww.ira.uka.de/bibliography/SE/litprog.html"> - <title>Bibliography on literate programming - A searchable bibliography</title> - </bookmark> - <bookmark href="http://www2.umassd.edu/SWPI/ProcessBibliography/bib-codereading.html"> - <title>Program comprehension and code reading bibliography</title> - </bookmark> - <bookmark href="http://www.cs.auc.dk/%7Enormark/elucidative-programming/"> - <title>Elucidative Programming</title> - </bookmark> - <bookmark href="http://www.msu.edu/%7Epfaffben/avl/index.html"> - <title>AVL Trees (TexiWeb)</title> - </bookmark> - <bookmark href="http://literate-programming.wikiverse.org/"> - <title>Literate Programming on Wikiverse</title> - </bookmark> - <bookmark href="http://www.pbrt.org/"> - <title>Physically Based Rendering: From Theory to Implementation</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Useful C++ Links</title> - <folder folded="no"> - <title>STL</title> - <bookmark href="http://www.sgi.com/tech/stl/table_of_contents.html"> - <title>STL Reference Documentation</title> - </bookmark> - <bookmark href="http://www.yrl.co.uk/~phil/stl/stl.htmlx"> - <title>STL Tutorial</title> - </bookmark> - <bookmark href="http://www.cppreference.com/cpp_stl.html"> - <title>STL Reference</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Qt</title> - <bookmark href="http://doc.qt.digia.com/2.3/"> - <title>Qt 2.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/3.3/"> - <title>Qt 3.3 Reference</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 Reference</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>Qt Home Page</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>IOStreams</title> - <bookmark href="http://www.cplusplus.com/ref/iostream/index.html"> - <title>IO Stream Library</title> - </bookmark> - <bookmark href="http://courses.cs.vt.edu/~cs2604/fall01/binio.html"> - <title>Binary I/O</title> - </bookmark> - <bookmark href="http://www.parashift.com/c++-faq-lite/input-output.html"> - <title>I/O Stream FAQ</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>gdb</title> - <bookmark href="http://www.cs.princeton.edu/~benjasik/gdb/gdbtut.html"> - <title>GDB Tutorial</title> - </bookmark> - <bookmark href="http://www.gnu.org/manual/gdb-4.17/html_mono/gdb.html"> - <title>Debugging with GDB</title> - </bookmark> - <bookmark href="http://www.cs.washington.edu/orgs/acm/tutorials/dev-in-unix/gdb-refcard.pdf"> - <title>GDB Quick Reference Page (PDF) (Handy)</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Classes and Constructors</title> - <bookmark href="http://www.parashift.com/c++-faq-lite/ctors.html"> - <title>Constructor FAQ</title> - </bookmark> - <bookmark href="http://www.juicystudio.com/tutorial/cpp/index.html"> - <title>Organizing Classes</title> - </bookmark> - </folder> - </folder> - <folder folded="yes"> - <title>Software Documentation or System Documentation</title> - <bookmark href="http://www.martinfowler.com/distributedComputing/thud.html"> - <title>The Almighty Thud</title> - </bookmark> - <bookmark href="http://msdn.microsoft.com/library/techart/cfr.htm"> - <title>Microsoft Coding Techniques and Programming Practices</title> - </bookmark> - <bookmark href="http://www.bearcave.com/software/prog_docs.html"> - <title>Software and Documentation</title> - </bookmark> - <bookmark href="http://c2.com/cgi/wiki?TheSourceCodeIsTheDesign"> - <title>The Source Code is the Design</title> - </bookmark> - <bookmark href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm"> - <title>What is Software Design?</title> - </bookmark> - <bookmark href="http://www.mindprod.com/unmain.html"> - <title>How To Write Unmaintainable Code</title> - </bookmark> - <bookmark href="http://www.idinews.com/selfDoc.html"> - <title>Self Documenting Program Code Remains a Distant Goal</title> - </bookmark> - <bookmark href="http://www.sdmagazine.com/documents/s=730/sdm0106m/0106m.htm"> - <title>Place Tab A in Slot B</title> - </bookmark> - <bookmark href="http://www.holub.com/class/uml/uml.html"> - <title>UML Reference Card</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>TeX Resources</title> - <bookmark href="http://www.tug.org/"> - <title>The TeX User's Group</title> - </bookmark> - <bookmark href="http://www.miktex.org/"> - <title>MikTeX website</title> - </bookmark> - <bookmark href="http://cm.bell-labs.com/who/hobby/MetaPost.html"> - <title>MetaPost website</title> - </bookmark> - <bookmark href="http://pauillac.inria.fr/%7Emaranget/hevea/"> - <title>HEVEA is a quite complete and fast LATEX to HTML translator</title> - </bookmark> - </folder> - <folder folded="no"> - <title>Portable Document Format (PDF)</title> - <bookmark href="http://www.adobe.com/"> - <title>Adobe - The postscript and PDF standards</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/technotes/acrobatpdf.html"> - <title>Reference Manual Portable Document Format</title> - </bookmark> - <bookmark href="http://partners.adobe.com/asn/developer/acrosdk/main.html"> - <title>Adobe Acrobat Software Development Kit</title> - </bookmark> - </folder> - <folder folded="yes"> - <title>Literature Sites</title> - <bookmark href="http://www.cc.columbia.edu/cu/libraries/subjects/speccol.html"> - <title>Guide to Special Collections (Columbia University)</title> - </bookmark> - <bookmark href="http://www.ipl.org/ref/litcrit/"> - <title>Literary Criticism on the Web from the Internet Public Library</title> - </bookmark> - <bookmark href="http://www.victorianweb.org/"> - <title>Victorian Web.</title> - </bookmark> - <bookmark href="http://vos.ucsb.edu/"> - <title>Voice of the Shuttle.</title> - </bookmark> - <bookmark href="http://www.modjourn.brown.edu/"> - <title>Modernist Journals Project</title> - </bookmark> - <bookmark href="http://www.poetspath.com"> - <title>Museum of American Poetics</title> - </bookmark> - <bookmark href="http://www.english.uiuc.edu/maps/"> - <title>Modern American Poetry</title> - </bookmark> - <bookmark href="http://www.findarticles.com/"> - <title>FindArticles.com</title> - </bookmark> - <bookmark href="http://www.literaryhistory.com"> - <title>Literary History</title> - </bookmark> - <bookmark href="http://www.litencyc.com/LitEncycFrame.htm"> - <title>Literary Encyclopedia</title> - </bookmark> - <separator/> - <bookmark href="http://texts.cdlib.org/ucpress/"> - <title>The University of California Press</title> - </bookmark> - <bookmark href="http://www.letrs.indiana.edu/web/w/wright2/"> - <title>Wright American Fiction, 1851-1875</title> - </bookmark> - <bookmark href="http://docsouth.unc.edu/"> - <title>Documenting the American South: Beginnings to 1920</title> - </bookmark> - <bookmark href="http://etext.lib.virginia.edu/eng-on.html"> - <title>Electronic Text Center at the University of Virginia</title> - </bookmark> - <bookmark href="http://digital.nypl.org/schomburg/writers_aa19/"> - <title>The Schomburg Center for Research in Black Culture</title> - </bookmark> - <bookmark href="http://www.infomotions.com/alex2/"> - <title>Alex Catalogue of Electronic Texts.</title> - </bookmark> - </folder> -</xbel> diff --git a/examples/xml/streambookmarks/jennifer.xbel b/examples/xml/streambookmarks/jennifer.xbel index 74b7f1519f..2501c118af 100644 --- a/examples/xml/streambookmarks/jennifer.xbel +++ b/examples/xml/streambookmarks/jennifer.xbel @@ -3,60 +3,42 @@ <xbel version="1.0"> <folder folded="no"> <title>Qt Resources</title> - <folder folded="yes"> + <bookmark href="http://qt.io/"> + <title>Qt home page</title> + </bookmark> + <bookmark href="https://www.qt.io/partners/"> <title>Qt Partners</title> - <bookmark href="http://partners.trolltech.com/partners/training.html"> - <title>Training Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/service.html"> - <title>Consultants and System Integrators</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/tech.html"> - <title>Technology Partners</title> - </bookmark> - <bookmark href="http://partners.trolltech.com/partners/resellers.html"> - <title>Value Added Resellers (VARs)</title> - </bookmark> - </folder> + </bookmark> + <bookmark href="https://www.qt.io/qt-training/"> + <title>Training</title> + </bookmark> + <bookmark href="http://doc.qt.io/"> + <title>Qt 5 documentation</title> + </bookmark> + <bookmark href="http://qt-project.org/faq/"> + <title>Frequently Asked Questions</title> + </bookmark> <folder folded="yes"> <title>Community Resources</title> + <bookmark href="http://www.qtcentre.org/content/"> + <title>Qt Centre</title> + </bookmark> <bookmark href="http://www.qtforum.org/"> <title>QtForum.org</title> </bookmark> - <bookmark href="http://www.digitalfanatics.org/projects/qt_tutorial/"> + <bookmark href="http://digitalfanatics.org/projects/qt_tutorial/"> <title>The Independent Qt Tutorial</title> </bookmark> - <bookmark href="http://prog.qt.free.fr/"> - <title>French PROG.Qt</title> - </bookmark> <bookmark href="http://www.qtforum.de/"> <title>German Qt Forum</title> </bookmark> <bookmark href="http://www.korone.net/"> <title>Korean Qt Community Site</title> </bookmark> - <bookmark href="http://prog.org.ru/forum/forum_14.html"> + <bookmark href="http://prog.org.ru/"> <title>Russian Qt Forum</title> </bookmark> - <bookmark href="http://qt4.digitalfanatics.org/"> - <title>Digitalfanatics: The QT 4 Resource Center</title> - </bookmark> - <bookmark href="http://www.qtquestions.org/"> - <title>QtQuestions</title> - </bookmark> </folder> - <bookmark href="http://doc.qt.digia.com/qq/"> - <title>Qt Quarterly</title> - </bookmark> - <bookmark href="http://qt-project.org/"> - <title>Qt home page</title> - </bookmark> - <bookmark href="http://doc.qt.digia.com/4.0/"> - <title>Qt 4.0 documentation</title> - </bookmark> - <bookmark href="http://qt-project.org/faq/"> - <title>Frequently Asked Questions</title> - </bookmark> </folder> <folder folded="no"> <title>Online Dictionaries</title> @@ -73,9 +55,6 @@ <title>OneLook Dictionary Search</title> </bookmark> <separator/> - <bookmark href="www.iee.et.tu-dresden.de/"> - <title>The New English-German Dictionary</title> - </bookmark> <bookmark href="http://dict.tu-chemnitz.de/"> <title>TU Chemnitz German-English Dictionary</title> </bookmark> @@ -86,8 +65,5 @@ <bookmark href="http://dictionnaires.atilf.fr/dictionnaires/ACADEMIE/"> <title>Dictionnaire de l'Académie Française</title> </bookmark> - <bookmark href="http://elsap1.unicaen.fr/cgi-bin/cherches.cgi"> - <title>Dictionnaire des synonymes</title> - </bookmark> </folder> </xbel> diff --git a/mkspecs/features/lex.prf b/mkspecs/features/lex.prf index 16d3a6aa94..7d8325bedb 100644 --- a/mkspecs/features/lex.prf +++ b/mkspecs/features/lex.prf @@ -5,6 +5,7 @@ { lex.name = Lex ${QMAKE_FILE_IN} lex.input = LEXSOURCES + lex.dependency_type = TYPE_C lex_included { lex.CONFIG += no_link } else { diff --git a/mkspecs/features/yacc.prf b/mkspecs/features/yacc.prf index 915fbf6850..618f0668c2 100644 --- a/mkspecs/features/yacc.prf +++ b/mkspecs/features/yacc.prf @@ -35,6 +35,7 @@ yacc_impl.name = source for ${QMAKE_FILE_IN} yacc_impl.input = YACCSOURCES yacc_impl.variable_out = GENERATED_SOURCES + yacc_impl.dependency_type = TYPE_C yacc_impl.commands = $$escape_expand(\\n) # We don't want any commands where, but if command is empty no rules are created yacc_impl.depends += $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_H)} # Make sure we depend on the step above yacc_impl.output = $${QMAKE_CPP_MOD_MOC}${QMAKE_FILE_BASE}$${QMAKE_MOD_YACC}$${first(QMAKE_EXT_CPP)} # Faked output from this step, output really created in step above diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 6424012a9a..ccbcdb1037 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -222,7 +222,7 @@ bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data) return false; } -#if defined(QT_EXT_QNX_READDIR_R) +#if defined(_DEXTRA_FIRST) static void fillStat64fromStat32(struct stat64 *statBuf64, const struct stat &statBuf32) { statBuf64->st_mode = statBuf32.st_mode; @@ -308,7 +308,7 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry) { -#if defined(QT_EXT_QNX_READDIR_R) +#if defined(_DEXTRA_FIRST) knownFlagsMask = 0; entryFlags = 0; for (dirent_extra *extra = _DEXTRA_FIRST(&entry); _DEXTRA_VALID(extra, &entry); diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index 16830257e1..081487e66e 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -93,14 +93,6 @@ private: #else QT_DIR *dir; QT_DIRENT *dirEntry; -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) || defined(QT_EXT_QNX_READDIR_R) - // for readdir_r - QScopedPointer<QT_DIRENT, QScopedPointerPodDeleter> mt_file; -#if defined(QT_EXT_QNX_READDIR_R) - // for _readdir_r - size_t direntSize; -#endif -#endif int lastError; #endif diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp index d7b21fac32..0d1438f137 100644 --- a/src/corelib/io/qfilesystemiterator_unix.cpp +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -52,9 +52,6 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi : nativePath(entry.nativeFilePath()) , dir(0) , dirEntry(0) -#if defined(Q_OS_QNX) && defined(__EXT_QNX__READDIR_R) - , direntSize(0) -#endif , lastError(0) { Q_UNUSED(filters) @@ -64,32 +61,8 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi if ((dir = QT_OPENDIR(nativePath.constData())) == 0) { lastError = errno; } else { - if (!nativePath.endsWith('/')) nativePath.append('/'); - -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) || defined(QT_EXT_QNX_READDIR_R) - // ### Race condition; we should use fpathconf and dirfd(). - size_t maxPathName = ::pathconf(nativePath.constData(), _PC_NAME_MAX); - if (maxPathName == size_t(-1)) - maxPathName = FILENAME_MAX; - maxPathName += sizeof(QT_DIRENT) + 1; - - QT_DIRENT *p = reinterpret_cast<QT_DIRENT*>(::malloc(maxPathName)); - Q_CHECK_PTR(p); - - mt_file.reset(p); -#if defined(QT_EXT_QNX_READDIR_R) - direntSize = maxPathName; - - // Include extra stat information in the readdir() call (d_stat member of - // dirent_extra_stat). This is used in QFileSystemMetaData::fillFromDirEnt() to - // avoid extra stat() calls when iterating over directories - int flags = dircntl(dir, D_GETFLAG) | D_FLAG_STAT | D_FLAG_FILTER; - if (dircntl(dir, D_SETFLAG, flags) == -1) - lastError = errno; -#endif -#endif } } @@ -104,18 +77,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa if (!dir) return false; -#if defined(QT_EXT_QNX_READDIR_R) - lastError = QT_EXT_QNX_READDIR_R(dir, mt_file.data(), &dirEntry, direntSize); - if (lastError) - return false; -#elif defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) - lastError = QT_READDIR_R(dir, mt_file.data(), &dirEntry); - if (lastError) - return false; -#else - // ### add local lock to prevent breaking reentrancy dirEntry = QT_READDIR(dir); -#endif // _POSIX_THREAD_SAFE_FUNCTIONS if (dirEntry) { fileEntry = QFileSystemEntry(nativePath + QByteArray(dirEntry->d_name), QFileSystemEntry::FromNativePath()); diff --git a/src/corelib/json/qjsonparser.cpp b/src/corelib/json/qjsonparser.cpp index 6a3d1de99a..094cb7a76b 100644 --- a/src/corelib/json/qjsonparser.cpp +++ b/src/corelib/json/qjsonparser.cpp @@ -391,6 +391,8 @@ bool Parser::parseObject() } int objectOffset = reserveSpace(sizeof(QJsonPrivate::Object)); + if (objectOffset < 0) + return false; BEGIN << "parseObject pos=" << objectOffset << current << json; ParsedObject parsedObject(this, objectOffset); @@ -423,6 +425,9 @@ bool Parser::parseObject() if (parsedObject.offsets.size()) { int tableSize = parsedObject.offsets.size()*sizeof(uint); table = reserveSpace(tableSize); + if (table < 0) + return false; + #if Q_BYTE_ORDER == Q_LITTLE_ENDIAN memcpy(data + table, parsedObject.offsets.constData(), tableSize); #else @@ -452,6 +457,8 @@ bool Parser::parseObject() bool Parser::parseMember(int baseOffset) { int entryOffset = reserveSpace(sizeof(QJsonPrivate::Entry)); + if (entryOffset < 0) + return false; BEGIN << "parseMember pos=" << entryOffset; bool latin1; @@ -475,6 +482,42 @@ bool Parser::parseMember(int baseOffset) return true; } +namespace { + struct ValueArray { + static const int prealloc = 128; + ValueArray() : data(stackValues), alloc(prealloc), size(0) {} + ~ValueArray() { if (data != stackValues) free(data); } + + inline bool grow() { + alloc *= 2; + if (data == stackValues) { + QJsonPrivate::Value *newValues = static_cast<QJsonPrivate::Value *>(malloc(alloc*sizeof(QJsonPrivate::Value))); + if (!newValues) + return false; + memcpy(newValues, data, size*sizeof(QJsonPrivate::Value)); + data = newValues; + } else { + data = static_cast<QJsonPrivate::Value *>(realloc(data, alloc*sizeof(QJsonPrivate::Value))); + if (!data) + return false; + } + return true; + } + bool append(const QJsonPrivate::Value &v) { + if (alloc == size && !grow()) + return false; + data[size] = v; + ++size; + return true; + } + + QJsonPrivate::Value stackValues[prealloc]; + QJsonPrivate::Value *data; + int alloc; + int size; + }; +} + /* array = begin-array [ value *( value-separator value ) ] end-array */ @@ -488,8 +531,10 @@ bool Parser::parseArray() } int arrayOffset = reserveSpace(sizeof(QJsonPrivate::Array)); + if (arrayOffset < 0) + return false; - QVarLengthArray<QJsonPrivate::Value, 64> values; + ValueArray values; if (!eatSpace()) { lastError = QJsonParseError::UnterminatedArray; @@ -502,7 +547,10 @@ bool Parser::parseArray() QJsonPrivate::Value val; if (!parseValue(&val, arrayOffset)) return false; - values.append(val); + if (!values.append(val)) { + lastError = QJsonParseError::DocumentTooLarge; + return false; + } char token = nextToken(); if (token == EndArray) break; @@ -516,20 +564,22 @@ bool Parser::parseArray() } } - DEBUG << "size =" << values.size(); + DEBUG << "size =" << values.size; int table = arrayOffset; // finalize the object - if (values.size()) { - int tableSize = values.size()*sizeof(QJsonPrivate::Value); + if (values.size) { + int tableSize = values.size*sizeof(QJsonPrivate::Value); table = reserveSpace(tableSize); - memcpy(data + table, values.constData(), tableSize); + if (table < 0) + return false; + memcpy(data + table, values.data, tableSize); } QJsonPrivate::Array *a = (QJsonPrivate::Array *)(data + arrayOffset); a->tableOffset = table - arrayOffset; a->size = current - arrayOffset; a->is_object = false; - a->length = values.size(); + a->length = values.size; DEBUG << "current=" << current; END; @@ -738,6 +788,8 @@ bool Parser::parseNumber(QJsonPrivate::Value *val, int baseOffset) } int pos = reserveSpace(sizeof(double)); + if (pos < 0) + return false; qToLittleEndian(ui, data + pos); if (current - baseOffset >= Value::MaxSize) { lastError = QJsonParseError::DocumentTooLarge; @@ -856,6 +908,9 @@ bool Parser::parseString(bool *latin1) // try to write out a latin1 string int stringPos = reserveSpace(2); + if (stringPos < 0) + return false; + BEGIN << "parse string stringPos=" << stringPos << json; while (json < end) { uint ch = 0; @@ -878,6 +933,8 @@ bool Parser::parseString(bool *latin1) break; } int pos = reserveSpace(1); + if (pos < 0) + return false; DEBUG << " " << ch << (char)ch; data[pos] = (uchar)ch; } @@ -893,6 +950,8 @@ bool Parser::parseString(bool *latin1) // write string length *(QJsonPrivate::qle_ushort *)(data + stringPos) = ushort(current - outStart - sizeof(ushort)); int pos = reserveSpace((4 - current) & 3); + if (pos < 0) + return false; while (pos & 3) data[pos++] = 0; END; @@ -922,10 +981,14 @@ bool Parser::parseString(bool *latin1) } if (QChar::requiresSurrogates(ch)) { int pos = reserveSpace(4); + if (pos < 0) + return false; *(QJsonPrivate::qle_ushort *)(data + pos) = QChar::highSurrogate(ch); *(QJsonPrivate::qle_ushort *)(data + pos + 2) = QChar::lowSurrogate(ch); } else { int pos = reserveSpace(2); + if (pos < 0) + return false; *(QJsonPrivate::qle_ushort *)(data + pos) = (ushort)ch; } } @@ -939,6 +1002,8 @@ bool Parser::parseString(bool *latin1) // write string length *(QJsonPrivate::qle_int *)(data + stringPos) = (current - outStart - sizeof(int))/2; int pos = reserveSpace((4 - current) & 3); + if (pos < 0) + return false; while (pos & 3) data[pos++] = 0; END; diff --git a/src/corelib/json/qjsonparser_p.h b/src/corelib/json/qjsonparser_p.h index e3b95109c6..afa2c1a8cf 100644 --- a/src/corelib/json/qjsonparser_p.h +++ b/src/corelib/json/qjsonparser_p.h @@ -109,6 +109,10 @@ private: if (current + space >= dataLength) { dataLength = 2*dataLength + space; data = (char *)realloc(data, dataLength); + if (!data) { + lastError = QJsonParseError::DocumentTooLarge; + return -1; + } } int pos = current; current += space; diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h index 038f4149c3..38753a6726 100644 --- a/src/corelib/tools/qalgorithms.h +++ b/src/corelib/tools/qalgorithms.h @@ -42,7 +42,7 @@ #include <QtCore/qglobal.h> -#if defined(Q_CC_MSVC) +#if defined(Q_CC_MSVC) && _MSC_VER > 1500 #include <intrin.h> #endif diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 27d8c14583..8520bb5740 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -4814,6 +4814,39 @@ QString QString::fromUtf16(const ushort *unicode, int size) return QUtf16::convertToUnicode((const char *)unicode, size*2, 0); } +/*! + \fn QString QString::fromUtf16(const char16_t *str, int size) + \since 5.3 + + Returns a QString initialized with the first \a size characters + of the Unicode string \a str (ISO-10646-UTF-16 encoded). + + If \a size is -1 (default), \a str must be terminated + with a 0. + + This function checks for a Byte Order Mark (BOM). If it is missing, + host byte order is assumed. + + This function is slow compared to the other Unicode conversions. + Use QString(const QChar *, int) or QString(const QChar *) if possible. + + QString makes a deep copy of the Unicode data. + + \sa utf16(), setUtf16(), fromStdU16String() +*/ + +/*! + \fn QString QString::fromUcs4(const char32_t *str, int size) + \since 5.3 + + Returns a QString initialized with the first \a size characters + of the Unicode string \a str (ISO-10646-UCS-4 encoded). + + If \a size is -1 (default), \a str must be terminated + with a 0. + + \sa toUcs4(), fromUtf16(), utf16(), setUtf16(), fromWCharArray(), fromStdU32String() +*/ /*! \since 4.2 diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index db118edf04..0d2f55b1c2 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -303,7 +303,7 @@ QPixmap QPixmapIconEngine::pixmap(const QSize &size, QIcon::Mode mode, QIcon::St QString key = QLatin1String("qt_") % HexString<quint64>(pm.cacheKey()) - % HexString<uint>(pe->mode) + % HexString<uint>(pe ? pe->mode : QIcon::Normal) % HexString<quint64>(QGuiApplication::palette().cacheKey()) % HexString<uint>(actualSize.width()) % HexString<uint>(actualSize.height()); diff --git a/src/gui/opengl/qopengl.cpp b/src/gui/opengl/qopengl.cpp index 1a8fc599ce..eb08492254 100644 --- a/src/gui/opengl/qopengl.cpp +++ b/src/gui/opengl/qopengl.cpp @@ -135,9 +135,6 @@ QDebug operator<<(QDebug d, const QOpenGLConfig::Gpu &g) return d; } -enum Operator { NotEqual, LessThan, LessEqualThan, Equals, GreaterThan, GreaterEqualThan }; -static const char operators[][3] = {"!=", "<", "<=", "=", ">", ">="}; - typedef QJsonArray::ConstIterator JsonArrayConstIt; static inline bool contains(const QJsonArray &haystack, unsigned needle) @@ -159,6 +156,9 @@ static inline bool contains(const QJsonArray &haystack, const QString &needle) } namespace { +enum Operator { NotEqual, LessThan, LessEqualThan, Equals, GreaterThan, GreaterEqualThan }; +static const char operators[][3] = {"!=", "<", "<=", "=", ">", ">="}; + // VersionTerm describing a version term consisting of number and operator // found in os.version and driver_version. struct VersionTerm { diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 2716d92d13..fe1ff6603d 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -4405,8 +4405,10 @@ static void blend_tiled_argb(int count, const QSpan *spans, void *userData) uint *dest = ((uint *)data->rasterBuffer->scanLine(spans->y)) + x; op.func(dest, src, l, coverage); x += l; + sx += l; length -= l; - sx = 0; + if (sx >= image_width) + sx = 0; } ++spans; } @@ -4464,7 +4466,9 @@ static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData) memcpy(dest, src, l * sizeof(quint16)); length -= l; tx += l; - sx = 0; + sx += l; + if (sx >= image_width) + sx = 0; } // Now use the rasterBuffer as the source of the texture, @@ -4497,8 +4501,10 @@ static void blend_tiled_rgb565(int count, const QSpan *spans, void *userData) const quint16 *src = (const quint16 *)data->texture.scanLine(sy) + sx; blend_sourceOver_rgb16_rgb16(dest, src, l, alpha, ialpha); x += l; + sx += l; length -= l; - sx = 0; + if (sx >= image_width) + sx = 0; } } } diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp index 62bc8ca683..d547f829f8 100644 --- a/src/network/socket/qnativesocketengine_winrt.cpp +++ b/src/network/socket/qnativesocketengine_winrt.cpp @@ -718,7 +718,7 @@ qint64 QNativeSocketEngine::readDatagram(char *data, qint64 maxlen, QIpPacketHea QByteArray readOrigin; // Do not read the whole datagram. Put the rest of it back into the "queue" if (maxlen < datagram.data.length()) { - QByteArray readOrigin = datagram.data.left(maxlen); + readOrigin = datagram.data.left(maxlen); datagram.data = datagram.data.remove(0, maxlen); d->pendingDatagrams.prepend(datagram); } else { diff --git a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp index 2030732e4b..ba5089a8bc 100644 --- a/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp +++ b/src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qgtk3dialoghelpers.h" +#include "qgtk3theme.h" #include <qeventloop.h> #include <qwindow.h> @@ -56,6 +57,11 @@ QT_BEGIN_NAMESPACE +static const char *standardButtonText(int button) +{ + return QGtk3Theme::defaultStandardButtonText(button).toUtf8(); +} + class QGtk3Dialog : public QWindow { Q_OBJECT @@ -237,8 +243,10 @@ QGtk3FileDialogHelper::QGtk3FileDialogHelper() { d.reset(new QGtk3Dialog(gtk_file_chooser_dialog_new("", 0, GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, NULL))); + standardButtonText(QPlatformDialogHelper::Cancel), GTK_RESPONSE_CANCEL, + standardButtonText(QPlatformDialogHelper::Ok), GTK_RESPONSE_OK, + NULL))); + connect(d.data(), SIGNAL(accept()), this, SLOT(onAccepted())); connect(d.data(), SIGNAL(reject()), this, SIGNAL(reject())); @@ -438,9 +446,9 @@ void QGtk3FileDialogHelper::applyOptions() if (opts->isLabelExplicitlySet(QFileDialogOptions::Accept)) gtk_button_set_label(GTK_BUTTON(acceptButton), opts->labelText(QFileDialogOptions::Accept).toUtf8()); else if (opts->acceptMode() == QFileDialogOptions::AcceptOpen) - gtk_button_set_label(GTK_BUTTON(acceptButton), GTK_STOCK_OPEN); + gtk_button_set_label(GTK_BUTTON(acceptButton), standardButtonText(QPlatformDialogHelper::Open)); else - gtk_button_set_label(GTK_BUTTON(acceptButton), GTK_STOCK_SAVE); + gtk_button_set_label(GTK_BUTTON(acceptButton), standardButtonText(QPlatformDialogHelper::Save)); } GtkWidget *rejectButton = gtk_dialog_get_widget_for_response(gtkDialog, GTK_RESPONSE_CANCEL); @@ -448,7 +456,7 @@ void QGtk3FileDialogHelper::applyOptions() if (opts->isLabelExplicitlySet(QFileDialogOptions::Reject)) gtk_button_set_label(GTK_BUTTON(rejectButton), opts->labelText(QFileDialogOptions::Reject).toUtf8()); else - gtk_button_set_label(GTK_BUTTON(rejectButton), GTK_STOCK_CANCEL); + gtk_button_set_label(GTK_BUTTON(rejectButton), standardButtonText(QPlatformDialogHelper::Cancel)); } } diff --git a/src/widgets/widgets/qmainwindow.cpp b/src/widgets/widgets/qmainwindow.cpp index e32e379198..abfdfbea9b 100644 --- a/src/widgets/widgets/qmainwindow.cpp +++ b/src/widgets/widgets/qmainwindow.cpp @@ -326,7 +326,7 @@ void QMainWindowPrivate::init() direction. Two dock widgets may also be stacked on top of each other. A - QTabBar is then used to select which of the widgets that should be + QTabBar is then used to select which of the widgets should be displayed. We give an example of how to create and add dock widgets to a diff --git a/src/widgets/widgets/qsizegrip.cpp b/src/widgets/widgets/qsizegrip.cpp index 5150601366..82857c8805 100644 --- a/src/widgets/widgets/qsizegrip.cpp +++ b/src/widgets/widgets/qsizegrip.cpp @@ -184,9 +184,12 @@ Qt::Corner QSizeGripPrivate::corner() const Put this widget anywhere in a widget tree and the user can use it to resize the top-level window or any widget with the Qt::SubWindow flag set. Generally, this should be in the lower right-hand corner. + Note that QStatusBar already uses this widget, so if you have a status bar (e.g., you are using QMainWindow), then you don't need - to use this widget explicitly. + to use this widget explicitly. The same goes for QDialog, for which + you can just call \l {QDialog::setSizeGripEnabled()} + {QDialog::setSizeGripEnabled()}. On some platforms the size grip automatically hides itself when the window is shown full screen or maximised. |