From 48f95bb1e6257a141c5d5fe3e27dd1f968d8f389 Mon Sep 17 00:00:00 2001 From: "pierre%netscape.com" Date: Tue, 6 Oct 1998 02:54:00 +0000 Subject: [PATCH] implemented Copy for Mac --- webshell/tests/viewer/nsBrowserWindow.cpp | 27 ++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/webshell/tests/viewer/nsBrowserWindow.cpp b/webshell/tests/viewer/nsBrowserWindow.cpp index be795cfa319b..c4b42267ed7b 100644 --- a/webshell/tests/viewer/nsBrowserWindow.cpp +++ b/webshell/tests/viewer/nsBrowserWindow.cpp @@ -69,17 +69,18 @@ #if defined(WIN32) #include #else -#if defined(XP_MAC) -#include "ostrstream.h" -#else #include #endif -#endif #if defined(WIN32) #include #endif +#if defined (XP_MAC) +#include +#include +#endif + // XXX For font setting below #include "nsFont.h" @@ -1659,7 +1660,7 @@ nsBrowserWindow::DoCopy() } NS_IF_RELEASE(dtd); NS_IF_RELEASE(sink); - char* str = data.str(); + char* str = (char*)data.str(); #if defined(WIN32) PRUint32 cf_aol = RegisterClipboardFormat(gsAOLFormat); @@ -1680,6 +1681,22 @@ nsBrowserWindow::DoCopy() // in ostrstreams if you cal the str() function // then you are responsible for deleting the string #endif + +#if defined(XP_MAC) + PRInt32 len = data.pcount(); + if (len) + { + char * ptr = str; + for (PRInt32 plen = len; plen > 0; plen --, ptr ++) + if (*ptr == '\n') + *ptr = '\r'; + + OSErr err = ::ZeroScrap(); + err = ::PutScrap(len, 'TEXT', str); + ::TEFromScrap(); + } +#endif + if (str) delete str; }