[haiku-commits] haiku: hrev48063 - src/tests/kits/net/service src/apps/serialconnect src/add-ons/kernel/drivers/midi/usb_midi build/jam src/kits/network/libnetapi

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 21 Oct 2014 11:32:05 +0200 (CEST)

hrev48063 adds 2 changesets to branch 'master'
old head: 7284564eab186f28ab292522390b1b7be9573794
new head: 06f436b3ac2c073913bc7e7afb56365a2ca978eb
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=06f436b+%5E7284564

----------------------------------------------------------------------------

6da9451: UrlTest: cleanup IDN tests.

06f436b: Use strict mode when url-decoding file requests.
  
  We don't want '+' to become a space here.
  Fixes #11109.

                                 [ Adrien Destugues <pulkomandy@xxxxxxxxx> ]

----------------------------------------------------------------------------

11 files changed, 77 insertions(+), 46 deletions(-)
build/jam/ArchitectureRules                      |  4 ++
headers/os/locale/Collator.h                     |  2 -
headers/os/net/HttpRequest.h                     |  2 +-
.../kernel/drivers/midi/usb_midi/usb_midi.cpp    | 12 ++--
src/apps/serialconnect/TermView.cpp              | 27 +++++++--
src/data/mime_db/text/html                       |  2 +-
src/kits/network/libnetapi/FileRequest.cpp       |  2 +-
src/kits/network/libnetapi/NetworkCookie.cpp     |  4 +-
.../UrlProtocolAsynchronousListener.cpp          |  3 +-
.../app/drawing/Painter/AGGTextRenderer.cpp      |  2 +-
src/tests/kits/net/service/UrlTest.cpp           | 63 +++++++++++---------

############################################################################

Commit:      6da9451ebaec75b9c1166e822cbfac4c819504dc
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6da9451
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Tue Oct 21 09:00:15 2014 UTC

UrlTest: cleanup IDN tests.

----------------------------------------------------------------------------

diff --git a/src/tests/kits/net/service/UrlTest.cpp 
b/src/tests/kits/net/service/UrlTest.cpp
index c5c21e2..6d151d0 100644
--- a/src/tests/kits/net/service/UrlTest.cpp
+++ b/src/tests/kits/net/service/UrlTest.cpp
@@ -534,41 +534,33 @@ UrlTest::RelativeUriTest()
 }
 
 
-
 void
 UrlTest::IDNTest()
 {
        // http://www.w3.org/2004/04/uri-rel-test.html
-       // TODO these need to be manually UrlDecoded with our API.
-       // We also need to decide wether to store them as UTF-8 or 
IDNA/punycode.
-       NextSubTest();
-       CPPUNIT_ASSERT_EQUAL(BUrl("http://www.w3.org";).UrlString(),
-               BUrl("http://www.w%33.org";).UrlString());
-       NextSubTest();
-       CPPUNIT_ASSERT_EQUAL(
-               BUrl("http://xn--rksmrgs-5wao1o.josefsson.org";).UrlString(),
-               
BUrl("http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org";).UrlString());
-       NextSubTest();
-       CPPUNIT_ASSERT_EQUAL(
-               BUrl("http://xn--rksmrgs-5wao1o.josefsson.org";).UrlString(),
-               
BUrl("http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp";).UrlString());
-       NextSubTest();
-       CPPUNIT_ASSERT_EQUAL(
-               
BUrl("http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9b";
-                       "ya3kc6lra.w3.mag.keio.ac.jp/").UrlString(),
-               
BUrl("http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA";
+       // TODO We need to decide wether to store them as UTF-8 or 
IDNA/punycode.
+
+       struct Test {
+               const char* escaped;
+               const char* decoded;
+       };
+
+       Test tests[] = {
+               { "http://www.w%33.org";, "http://www.w3.org"; },
+               { "http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org";,
+                       "http://xn--rksmrgs-5wao1o.josefsson.org"; },
+               { "http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp";,
+                       "http://xn--99zt52a.w3.mag.keio.ac.jp"; },
+               { 
"http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA";
                        
"%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3"
                        
"%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82"
                        
"%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0"
                        
"%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3"
-                       
"%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/").UrlString());
-       NextSubTest();
-       CPPUNIT_ASSERT_EQUAL(
-               
BUrl("http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3k";
-                       
"c6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6"
-                       
"lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lr"
-                       "a.w3.mag.keio.ac.jp/").UrlString(),
-               
BUrl("http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3";
+                       "%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/",
+                       
"http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9b";
+                       "ya3kc6lra.w3.mag.keio.ac.jp/" },
+
+               { 
"http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3";
                        
"%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82"
                        
"%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81"
                        
"%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3"
@@ -584,7 +576,22 @@ UrlTest::IDNTest()
                        
"%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE"
                        
"%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3"
                        
"%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81"
-                       "%AA%E3%81%84.w3.mag.keio.ac.jp/").UrlString());
+                       "%AA%E3%81%84.w3.mag.keio.ac.jp/",
+                       
"http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3k";
+                       
"c6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6"
+                       
"lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lr"
+                       "a.w3.mag.keio.ac.jp/" },
+               { NULL, NULL }
+       };
+
+       for (int i = 0; tests[i].escaped != NULL; i++)
+       {
+               NextSubTest();
+               BUrl url(tests[i].escaped);
+               url.UrlDecode();
+               CPPUNIT_ASSERT_EQUAL(BUrl(tests[i].decoded).UrlString(),
+                       url.UrlString());
+       }
 }
 
 

############################################################################

Revision:    hrev48063
Commit:      06f436b3ac2c073913bc7e7afb56365a2ca978eb
URL:         http://cgit.haiku-os.org/haiku/commit/?id=06f436b
Author:      Adrien Destugues <pulkomandy@xxxxxxxxx>
Date:        Tue Oct 21 09:12:10 2014 UTC

Ticket:      https://dev.haiku-os.org/ticket/11109

Use strict mode when url-decoding file requests.

We don't want '+' to become a space here.
Fixes #11109.

----------------------------------------------------------------------------

diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules
index e3ff8c1..a623835 100644
--- a/build/jam/ArchitectureRules
+++ b/build/jam/ArchitectureRules
@@ -483,11 +483,15 @@ rule ArchitectureSetupWarnings architecture
        EnableWerror src add-ons kernel bus_managers ata ;
        EnableWerror src add-ons kernel bus_managers config_manager ;
 #      EnableWerror src add-ons kernel bus_managers firewire ;
+#      EnableWerror src add-ons kernel bus_managers ide ;
        EnableWerror src add-ons kernel bus_managers isa ;
        EnableWerror src add-ons kernel bus_managers pci ;
 #      EnableWerror src add-ons kernel bus_managers ps2 ; # gcc2
+#      EnableWerror src add-ons kernel bus_managers random ;
        EnableWerror src add-ons kernel bus_managers scsi ;
+#      EnableWerror src add-ons kernel bus_managers tty ;
        EnableWerror src add-ons kernel bus_managers usb ;
+#      EnableWerror src add-ons kernel bus_managers virtio ;
        EnableWerror src add-ons kernel busses agp_gart ;
        EnableWerror src add-ons kernel busses ata ;
        EnableWerror src add-ons kernel busses scsi ;
diff --git a/headers/os/locale/Collator.h b/headers/os/locale/Collator.h
index 6f818e6..861ccfe 100644
--- a/headers/os/locale/Collator.h
+++ b/headers/os/locale/Collator.h
@@ -12,10 +12,8 @@
 
 namespace icu {
        class Collator;
-       class RuleBasedCollator;
 };
 
-
 class BString;
 class BCollatorAddOn;
 
diff --git a/headers/os/net/HttpRequest.h b/headers/os/net/HttpRequest.h
index 6ca63eb..8fd4c41 100644
--- a/headers/os/net/HttpRequest.h
+++ b/headers/os/net/HttpRequest.h
@@ -44,7 +44,7 @@ public:
                        void                            
AdoptPostFields(BHttpForm* const fields);
                        void                            AdoptInputData(BDataIO* 
const data,
                                                                        const 
ssize_t size = -1);
-            void                AdoptHeaders(BHttpHeaders* const headers);
+                       void                            
AdoptHeaders(BHttpHeaders* const headers);
 
                        status_t                        Stop();
                        const BUrlResult&       Result() const;
diff --git a/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.cpp 
b/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.cpp
index 0b586c7..771b522 100644
--- a/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.cpp
+++ b/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.cpp
@@ -170,9 +170,9 @@ typedef struct driver_cookie
 
 _EXPORT int32  api_version = B_CUR_DRIVER_API_VERSION;
 
-const char* usb_midi_driver_name = "usb_midi";
+static const char* usb_midi_driver_name = "usb_midi";
 
-const int CINbytes[] = {       /* See USB-MIDI Spec */
+static const int CINbytes[] = {        /* See USB-MIDI Spec */
        0,      /* 0x0 -- undefined Misc -- Reserved */
        0,      /* 0x1 -- undefined  Cable -- Reserved */
        2,      /* 0x2 -- 2-byte system common */
@@ -199,14 +199,16 @@ interpret_midi_buffer(usbmidi_device_info* midiDevice)
 {
        usb_midi_event_packet* packet = midiDevice->buffer;
        size_t bytes_left = midiDevice->actual_length;
-       while (bytes_left) {    /* buffer may have several packets */
-               int pktlen = CINbytes[packet->cin];
-               usbmidi_port_info* port = midiDevice->ports[packet->cn];
 
+       /* buffer may have several packets */
+       while (bytes_left >= sizeof(usb_midi_event_packet)) {
                DPRINTF_DEBUG((MY_ID "received packet %x:%d %x %x %x\n",
                        packet->cin, packet->cn,
                        packet->midi[0], packet->midi[1], packet->midi[2]));
 
+               int pktlen = CINbytes[packet->cin];
+               usbmidi_port_info* port = midiDevice->ports[packet->cn];
+
                /* port matching 'cable number' */
                if (port == NULL) {
                        DPRINTF_ERR((MY_ID "no port matching cable number 
%d!\n",
diff --git a/src/apps/serialconnect/TermView.cpp 
b/src/apps/serialconnect/TermView.cpp
index 68b9773..9fd2433 100644
--- a/src/apps/serialconnect/TermView.cpp
+++ b/src/apps/serialconnect/TermView.cpp
@@ -10,6 +10,7 @@
 
 #include <Entry.h>
 #include <File.h>
+#include <Font.h>
 #include <Layout.h>
 #include <ScrollBar.h>
 
@@ -87,8 +88,8 @@ TermView::Draw(BRect updateRect)
                        background.blue = cell.bg.blue;
                        background.alpha = 255;
 
-                       if ((cell.attrs.reverse != 0) ^ (pos.col == 
cursorPos.col
-                                       && pos.row == cursorPos.row)) {
+                       // Draw the cursor by swapping foreground and 
background colors
+                       if ((pos.col == cursorPos.col && pos.row == 
cursorPos.row)) {
                                SetLowColor(foreground);
                                SetViewColor(foreground);
                                SetHighColor(background);
@@ -103,10 +104,28 @@ TermView::Draw(BRect updateRect)
                                y + ceil(height.descent) + 
ceil(height.leading)),
                                B_SOLID_LOW);
 
+                       BFont font = be_fixed_font;
+                       if (cell.attrs.bold)
+                               font.SetFace(B_BOLD_FACE);
+                       if (cell.attrs.underline)
+                               font.SetFace(B_UNDERSCORE_FACE);
+                       if (cell.attrs.italic)
+                               font.SetFace(B_ITALIC_FACE);
+                       if (cell.attrs.blink) // FIXME make it actually blink
+                               font.SetFace(B_OUTLINED_FACE);
+                       if (cell.attrs.reverse)
+                               font.SetFace(B_NEGATIVE_FACE);
+                       if (cell.attrs.strike)
+                               font.SetFace(B_STRIKEOUT_FACE);
+
+                       // TODO handle "font" (alternate fonts), dwl and dhl 
(double size)
+
+                       SetFont(&font);
+
                        if (cell.chars[0] == 0) {
-                               x += fFontWidth;
-                               MovePenTo(x, y);
+                               DrawString(" ");
                                pos.col ++;
+                               x += fFontWidth;
                        } else {
                                char buffer[VTERM_MAX_CHARS_PER_CELL];
                                wcstombs(buffer, (wchar_t*)cell.chars,
diff --git a/src/data/mime_db/text/html b/src/data/mime_db/text/html
index 042a031..a118f19 100644
--- a/src/data/mime_db/text/html
+++ b/src/data/mime_db/text/html
@@ -6,7 +6,7 @@ resource(1, "META:TYPE") "text/html";
 resource(2, "META:SNIFF_RULE") #'CSTR' array {
        "0.40  [0:512]( -i \"<HTML\" | \"<HEAD\" | \"<TITLE\" | \"<BODY\" | "
        "\"<TABLE\" | \"<META\" | \"<CENTER\" | \"<!DOCTYPE HTML\" | 
\"<SCRIPT\" | "
-       "\"<STYLE\" | \"<A HREF\" )"
+       "\"<STYLE\" | \"<A HREF\" | \"<BR/>\" )"
 };
 
 resource(3, "META:S:DESC") #'MSDC' "HTML file";
diff --git a/src/kits/network/libnetapi/FileRequest.cpp 
b/src/kits/network/libnetapi/FileRequest.cpp
index 800509c..bfa803d 100644
--- a/src/kits/network/libnetapi/FileRequest.cpp
+++ b/src/kits/network/libnetapi/FileRequest.cpp
@@ -23,7 +23,7 @@ BFileRequest::BFileRequest(const BUrl& url, 
BUrlProtocolListener* listener,
        BUrlRequest(url, listener, context, "BUrlProtocol.File", "file"),
        fResult()
 {
-       fUrl.UrlDecode();
+       fUrl.UrlDecode(true);
 }
 
 
diff --git a/src/kits/network/libnetapi/NetworkCookie.cpp 
b/src/kits/network/libnetapi/NetworkCookie.cpp
index 50b4997..e7cc37f 100644
--- a/src/kits/network/libnetapi/NetworkCookie.cpp
+++ b/src/kits/network/libnetapi/NetworkCookie.cpp
@@ -19,8 +19,10 @@
 #include <HttpTime.h>
 #include <NetworkCookie.h>
 
+
 using BPrivate::BHttpTime;
 
+
 static const char* kArchivedCookieName = "be:cookie.name";
 static const char* kArchivedCookieValue = "be:cookie.value";
 static const char* kArchivedCookieDomain = "be:cookie.domain";
@@ -159,7 +161,7 @@ BNetworkCookie::ParseCookieString(const BString& string, 
const BUrl& url)
                        long maxAge = strtol(value.String(), &end, 10);
                        if (*end == '\0')
                                SetMaxAge((int)maxAge);
-                       else if(errno == ERANGE && maxAge == LONG_MAX)
+                       else if (errno == ERANGE && maxAge == LONG_MAX)
                                SetMaxAge(INT_MAX);
                        else
                                SetMaxAge(-1); // cookie will expire immediately
diff --git a/src/kits/network/libnetapi/UrlProtocolAsynchronousListener.cpp 
b/src/kits/network/libnetapi/UrlProtocolAsynchronousListener.cpp
index 1de09c2..791c29f 100644
--- a/src/kits/network/libnetapi/UrlProtocolAsynchronousListener.cpp
+++ b/src/kits/network/libnetapi/UrlProtocolAsynchronousListener.cpp
@@ -26,8 +26,7 @@ 
BUrlProtocolAsynchronousListener::BUrlProtocolAsynchronousListener(
        if (be_app->Lock()) {
                be_app->AddHandler(this);
                be_app->Unlock();
-       }
-       else
+       } else
                PRINT(("Cannot lock be_app\n"));
 
        if (transparent) {
diff --git a/src/servers/app/drawing/Painter/AGGTextRenderer.cpp 
b/src/servers/app/drawing/Painter/AGGTextRenderer.cpp
index 5ce1f5c..4324e09 100644
--- a/src/servers/app/drawing/Painter/AGGTextRenderer.cpp
+++ b/src/servers/app/drawing/Painter/AGGTextRenderer.cpp
@@ -316,7 +316,7 @@ public:
        }
 
 private:
-       const Transformable& fTransform;
+       const Transformable& fTransform;
        const BPoint&           fTransformOffset;
        const IntRect&          fClippingFrame;
        bool                            fDryRun;


Other related posts:

  • » [haiku-commits] haiku: hrev48063 - src/tests/kits/net/service src/apps/serialconnect src/add-ons/kernel/drivers/midi/usb_midi build/jam src/kits/network/libnetapi - pulkomandy