diff options
author | Dirk Meyer <dinoex@FreeBSD.org> | 2006-12-18 10:32:20 +0000 |
---|---|---|
committer | Dirk Meyer <dinoex@FreeBSD.org> | 2006-12-18 10:32:20 +0000 |
commit | a6238382d0e9d8c33ca54fec44c498c69ea5465f (patch) | |
tree | 64a4028e79c0c37a5e0544972d16e853c747f36f /news/lusernet | |
parent | - Fix build with gcc 4.1. (diff) |
LuserNET is an NNTP-based news reader for GNUstep.
WWW: http://web.telia.com/~u42308495/alex/LuserNET/LuserNET.html
Notes
Notes:
svn path=/head/; revision=180063
Diffstat (limited to 'news/lusernet')
-rw-r--r-- | news/lusernet/Makefile | 26 | ||||
-rw-r--r-- | news/lusernet/distinfo | 3 | ||||
-rw-r--r-- | news/lusernet/files/patch-pantomime_1_2 | 649 | ||||
-rw-r--r-- | news/lusernet/pkg-descr | 3 | ||||
-rw-r--r-- | news/lusernet/pkg-plist | 18 |
5 files changed, 699 insertions, 0 deletions
diff --git a/news/lusernet/Makefile b/news/lusernet/Makefile new file mode 100644 index 000000000000..69f0fb8add83 --- /dev/null +++ b/news/lusernet/Makefile @@ -0,0 +1,26 @@ +# New ports collection makefile for: lusernet +# Date created: 17 Nov 2006 +# Whom: dirk.meyer@dinoex.sub.org +# +# $FreeBSD$ +# + +PORTNAME= lusernet +PORTVERSION= 0.4.2 +CATEGORIES= news +MASTER_SITES= http://web.telia.com/~u42308495/alex/LuserNET/ +DISTNAME= LuserNET-${PORTVERSION} + +MAINTAINER= dinoex@FreeBSD.org +COMMENT= GNUstep news reader + +USE_GNUSTEP= yes +USE_GNUSTEP_PREFIX= yes +USE_GNUSTEP_BACK= yes +USE_GNUSTEP_BUILD= yes +USE_GNUSTEP_INSTALL= yes +USE_GNUSTEP_LOCAL_LIBS+= Pantomime:${PANTOMIME_PORT} + +PANTOMIME_PORT?= mail/pantomime + +.include <bsd.port.mk> diff --git a/news/lusernet/distinfo b/news/lusernet/distinfo new file mode 100644 index 000000000000..8f7c278ee95d --- /dev/null +++ b/news/lusernet/distinfo @@ -0,0 +1,3 @@ +MD5 (LuserNET-0.4.2.tar.gz) = 3d17d7462a3aba295246362a90db3ea1 +SHA256 (LuserNET-0.4.2.tar.gz) = 7a3c2b3e16388338cc3c775e6a8e746091aabe94b4707c6203a81f2420d2ac50 +SIZE (LuserNET-0.4.2.tar.gz) = 74040 diff --git a/news/lusernet/files/patch-pantomime_1_2 b/news/lusernet/files/patch-pantomime_1_2 new file mode 100644 index 000000000000..5fc1f9b3e64d --- /dev/null +++ b/news/lusernet/files/patch-pantomime_1_2 @@ -0,0 +1,649 @@ +## 05_pantomime1.2.dpatch by Sergey Golovin <svgol@mail.ru> +## +## DP: Convert to Pantomime 1.2. + +@DPATCH@ +diff -urNad lusernet.app-0.4.2~/ChangeLog ChangeLog +--- lusernet.app-0.4.2~/ChangeLog 1970-01-01 02:00:00.000000000 +0200 ++++ ChangeLog 2006-09-27 00:13:21.000000000 +0300 +@@ -0,0 +1,41 @@ ++2006-09-19 Sergey V. Golovin <svgol@mail.ru> ++ ++ * main.m ([AppDelegate -changeEncoding:]): post ++ DefaultEncodingChangedNotification when done ++ ++ * main.m: new notification DefaultEncodingChangedNotification ++ ++ * ComposeWindowController.m: "DefaultEncoding" now influences all ++ messages that going to be posted (Yavor Doganov <yavor@doganov.org>) ++ ++ * NNTPSourceGUI.m ([NNTPSourcePropertiesController ++ -initWithNNTPSource:]): the NNTPSourcePropertiesController is ++ responsible for releasing its window ([win release] removed from ++ end of -initWithNNTPSource:) ++ ++ * MessageViewController.m ([MessageViewController -getData]): ++ - The "DefaultEncoding" should influence only such messages that ++ have no the content type header ++ - All normal messages are displayed with their charsets ++ ++ * MessageViewController.m ([MessageViewController -encodingChanged:]): added ++ ([MessageViewController -initWithMsgDB:textView:scrollView:]): now it ++ waits for DefaultEncodingChangedNotification to redisplay ++ immediately a message if it is needed. ++ ++2006-09-04 Sergey Golovin <svgol@mail.ru> ++ ++ * Pref_MessageViewing.m ([Pref_MessageViewing -willShow]): added ++ a pop-up button for charset selection ++ ([Pref_MessageViewing -changeEncoding:]): added ++ ++2006-09-02 Sergey Golovin <svgol@mail.ru> ++ ++ * MessageViewController.m ([MessageViewController -getData]): ++ - added from user defaults a charset header when a raw message has ++ no one ++ - added from user defaults a content type header when a raw ++ message has no one ++ ++ * synchronized with Pantomime 1.2 ++ +diff -urNad lusernet.app-0.4.2~/ComposeWindowController.h ComposeWindowController.h +--- lusernet.app-0.4.2~/ComposeWindowController.h 2004-03-03 01:58:37.000000000 +0200 ++++ ComposeWindowController.h 2006-09-27 00:13:21.000000000 +0300 +@@ -6,7 +6,7 @@ + #define ComposeWindowController_h + + @class NSString,NSDictionary; +-@class Message; ++@class CWMessage; + @class NSTextView,NSTextField,NSButton; + + @interface ComposeWindowController : NSWindowController +@@ -25,7 +25,7 @@ + + - initWithHeaders: (NSDictionary *)headers quoteContent: (NSString *)content; + - initWithHeaders: (NSDictionary *)headers; +-- initWithFollowupToMessage: (Message *)msg; ++- initWithFollowupToMessage: (CWMessage *)msg; + + @end + +diff -urNad lusernet.app-0.4.2~/ComposeWindowController.m ComposeWindowController.m +--- lusernet.app-0.4.2~/ComposeWindowController.m 2004-03-03 01:58:37.000000000 +0200 ++++ ComposeWindowController.m 2006-09-27 00:13:21.000000000 +0300 +@@ -21,11 +21,12 @@ + #include "main.h" + #include "KeyWindow.h" + #include "Pref_Posting.h" ++#include "Pref_MessageViewing.h" + +-#include <Pantomime/Constants.h> +-#include <Pantomime/Message.h> +-#include <Pantomime/MimeUtility.h> +-#include <Pantomime/InternetAddress.h> ++#include <Pantomime/CWConstants.h> ++#include <Pantomime/CWMessage.h> ++#include <Pantomime/CWMIMEUtility.h> ++#include <Pantomime/CWInternetAddress.h> + + + @implementation ComposeWindowController +@@ -33,7 +34,7 @@ + + -(void) post: (id)sender + { +- Message *m=[[Message alloc] init]; ++ CWMessage *m=[[CWMessage alloc] init]; + NSMutableDictionary *md; + NSEnumerator *e; + NSString *header,*value; +@@ -64,7 +65,7 @@ + + if ([header isEqualToString: @"From"]) + { +- InternetAddress *ia=[[InternetAddress alloc] initWithString: value]; ++ CWInternetAddress *ia=[[CWInternetAddress alloc] initWithString: value]; + [m setFrom: ia]; + DESTROY(ia); + } +@@ -81,7 +82,14 @@ + [m setFormat: PantomimeFormatFlowed]; + [m setContent: [text string]]; + +- [m setCharset: [MimeUtility charsetForString: [text string]]]; ++ if(![Pref_MessageViewing defaultEncoding]) ++ { ++ [m setCharset: @"utf-8"]; ++ } ++ else ++ { ++ [m setCharset: [Pref_MessageViewing defaultEncoding]]; ++ } + + state=1; + d=[m dataValue]; +@@ -386,7 +394,7 @@ + } + + /* TODO: handle attributation, followup to sender, followup, etc. */ +-- initWithFollowupToMessage: (Message *)msg ++- initWithFollowupToMessage: (CWMessage *)msg + { + NSDictionary *headers; + NSString *subject,*references; +diff -urNad lusernet.app-0.4.2~/FolderThreader.m FolderThreader.m +--- lusernet.app-0.4.2~/FolderThreader.m 2004-03-03 01:58:37.000000000 +0200 ++++ FolderThreader.m 2006-09-27 00:13:21.000000000 +0300 +@@ -9,7 +9,7 @@ + + #include "FolderThreader.h" + +-#include <Pantomime/MimeUtility.h> ++#include <Pantomime/CWMIMEUtility.h> + + + static NSDate *parse_date(const char *date_header) +@@ -544,7 +544,7 @@ + return @""; + + d=[[NSData alloc] initWithBytes: c length: strlen(c)]; +- s2=[MimeUtility decodeHeader: d charset: nil]; ++ s2=[CWMIMEUtility decodeHeader: d charset: nil]; + [d release]; + return s2; + } +@@ -586,7 +586,7 @@ + else + { + d=[[NSData alloc] initWithBytes: c length: strlen(c)]; +- s2=[MimeUtility decodeHeader: d charset: nil]; ++ s2=[CWMIMEUtility decodeHeader: d charset: nil]; + [d release]; + h->subject=[s2 retain]; + } +@@ -595,7 +595,7 @@ + if (c) + { + d=[[NSData alloc] initWithBytes: c length: strlen(c)]; +- s2=[MimeUtility decodeHeader: d charset: nil]; ++ s2=[CWMIMEUtility decodeHeader: d charset: nil]; + [d release]; + h->from=[s2 retain]; + } +diff -urNad lusernet.app-0.4.2~/FolderWindowController.m FolderWindowController.m +--- lusernet.app-0.4.2~/FolderWindowController.m 2004-03-03 01:58:37.000000000 +0200 ++++ FolderWindowController.m 2006-09-27 00:13:21.000000000 +0300 +@@ -20,7 +20,7 @@ + #include <AppKit/NSCell.h> + #include <AppKit/NSFont.h> + +-#include <Pantomime/MimeUtility.h> ++#include <Pantomime/CWMIMEUtility.h> + + #include "MsgDB.h" + +diff -urNad lusernet.app-0.4.2~/MessageViewController.h MessageViewController.h +--- lusernet.app-0.4.2~/MessageViewController.h 2002-03-08 02:39:34.000000000 +0200 ++++ MessageViewController.h 2006-09-27 00:13:21.000000000 +0300 +@@ -6,7 +6,7 @@ + #define MessageViewController_h + + @class NSTextView,NSScrollView,NSMutableDictionary; +-@class Message; ++@class CWMessage; + + #include "MsgDB.h" + +@@ -17,7 +17,7 @@ + + MsgDB *mdb; + msg_id_t mid; +- Message *cur_message; ++ CWMessage *cur_message; + + /* actually an NSMapTable */ + void *cur_options; +@@ -48,6 +48,8 @@ + + -(void) messageSave; + ++-(void) encodingChanged: (NSNotification *)n; ++ + @end + + #endif +diff -urNad lusernet.app-0.4.2~/MessageViewController.m MessageViewController.m +--- lusernet.app-0.4.2~/MessageViewController.m 2004-03-03 01:58:37.000000000 +0200 ++++ MessageViewController.m 2006-09-27 00:13:21.000000000 +0300 +@@ -21,11 +21,11 @@ + + #include "GUISource.h" + +-#include <Pantomime/Message.h> +-#include <Pantomime/MimeMultipart.h> +-#include <Pantomime/MimeUtility.h> +-#include <Pantomime/InternetAddress.h> +-#include <Pantomime/UUFile.h> ++#include <Pantomime/CWMessage.h> ++#include <Pantomime/CWMIMEMultipart.h> ++#include <Pantomime/CWMIMEUtility.h> ++#include <Pantomime/CWInternetAddress.h> ++#include <Pantomime/CWUUFile.h> + + //#define USE_MIME_STUFF + +@@ -89,7 +89,7 @@ + + + @interface MessageViewController (private) +--(void) _renderContent:(id)p parent:(Part *)parent to:(NSMutableAttributedString *)str; ++-(void) _renderContent:(id)p parent:(CWPart *)parent to:(NSMutableAttributedString *)str; + -(void) _renderPart:(id)p to:(NSMutableAttributedString *)str; + + -(void) displayMessage; +@@ -212,10 +212,10 @@ + } + + +--(void) _render_multipart: (MimeMultipart *)mp type: (NSString *)ct ++-(void) _render_multipart: (CWMIMEMultipart *)mp type: (NSString *)ct + to: (NSMutableAttributedString *)str + { +- Part *bp; ++ CWPart *bp; + int i; + + if ([ct isEqual: @"multipart/alternative"]) +@@ -227,14 +227,14 @@ + else + disp=[mp count]-1; + +- bp=[mp bodyPartAtIndex: disp]; ++ bp=[mp partAtIndex: disp]; + append(str,header_bold_dict,_(@"Currently shown:")); + append(str,header_dict,@" %@\n",[bp contentType]); + append(str,header_bold_dict,_(@"Alternatives:")); + for (i=0;i<[mp count];i++) + { + appendLink(str,LINK_MULTIPART_ALTERNATIVE,mp,i+1,@" %@", +- [[mp bodyPartAtIndex: i] contentType]); ++ [[mp partAtIndex: i] contentType]); + } + append(str,nil,@"\n"); + +@@ -249,7 +249,7 @@ + + for (i=0;i<[mp count];i++) + { +- bp=[mp bodyPartAtIndex: i]; ++ bp=[mp partAtIndex: i]; + append(str,header_bold_dict,_(@"\nPart:")); + append(str,header_dict,@" %i %@\n",i,[bp contentType]); + [self _renderPart:bp to:str]; +@@ -264,7 +264,7 @@ + NSDictionary *fd; + NSFont *f; + +- NSRange r; ++ // NSRange r; + + if (cur_font) + f=[Pref_MessageViewing font2]; +@@ -276,7 +276,7 @@ + + #if 0 /* TODO: need to update with new Pantomime interface */ + /* TODO: this should probably be optional */ +- r=[MimeUtility rangeOfUUEncodedStringFromString: text ++ r=[CWMIMEUtility rangeOfUUEncodedStringFromString: text + range: NSMakeRange(0,[text length])]; + + if (r.location==NSNotFound) +@@ -291,7 +291,7 @@ + appendPlainText(str,fd,[text substringWithRange: NSMakeRange(0,r.location)]); + + /* TODO: this is inefficient */ +- fw=[MimeUtility fileWrapperFromUUEncodedString: [text substringWithRange: r]]; ++ fw=[CWMIMEUtility fileWrapperFromUUEncodedString: [text substringWithRange: r]]; + + append(str,header_bold_dict,_(@"UUEncoded file:")); + append(str,header_dict,@" %@ ",[fw preferredFilename]); +@@ -312,7 +312,7 @@ + } + + +--(void) _renderContent:(id)p parent:(Part *)parent ++-(void) _renderContent:(id)p parent:(CWPart *)parent + to:(NSMutableAttributedString *)str + { + NSString *ct=[parent contentType]; +@@ -340,9 +340,9 @@ + + + /* Some content classes/types we handle internally. */ +- if ([p isKindOfClass: [MimeMultipart class]]) ++ if ([p isKindOfClass: [CWMIMEMultipart class]]) + { +- [self _render_multipart: (MimeMultipart *)p type: ct to: str]; ++ [self _render_multipart: (CWMIMEMultipart *)p type: ct to: str]; + return; + } + +@@ -352,7 +352,7 @@ + return; + } + +- if ([p isKindOfClass: [Part class]]) ++ if ([p isKindOfClass: [CWPart class]]) + { + [self _renderPart: p to: str]; + return; +@@ -553,13 +553,13 @@ + + -(void) _renderPart:(id)p to:(NSMutableAttributedString *)str + { +- if ([p isKindOfClass: [Message class]]) ++ if ([p isKindOfClass: [CWMessage class]]) + { +- Message *m=(Message *)p; ++ CWMessage *m=(CWMessage *)p; + append(str,header_bold_dict,_(@"Subject:")); + append(str,header_dict,@" %@\n",[m subject]); + append(str,header_bold_dict,_(@"From:")); +- append(str,header_dict,@" %@\n",[[m from] unicodeStringValue]); ++ append(str,header_dict,@" %@\n",[[m from] stringValue]); + append(str,header_bold_dict,_(@"Newsgroups:")); + append(str,header_dict,@" %@\n",[m headerValueForName: @"Newsgroups"]); + append(str,header_bold_dict,_(@"Date:")); +@@ -569,9 +569,9 @@ + append(str,nil,@"\n"); + [self _renderContent:[m content] parent: m to:str]; + } +- else if ([p isKindOfClass: [Part class]]) ++ else if ([p isKindOfClass: [CWPart class]]) + { /* handles MimeBodyPart and any extensions */ +- [self _renderContent:[(Part *)p content] parent: (Part *)p to:str]; ++ [self _renderContent:[(CWPart *)p content] parent: (CWPart *)p to:str]; + } + else + { +@@ -655,7 +655,27 @@ + NSData *d; + + d=[[NSData alloc] initWithBytes: data length: length]; +- cur_message=[(Message *)[Message alloc] initWithData: d]; ++ if([mdb msg_getHeader: "ContentType" : mid]) ++ { ++ cur_message=[(CWMessage *)[CWMessage alloc] initWithData: d]; ++ } ++ else ++ { ++ cur_message=[(CWMessage *)[CWMessage alloc] initWithData: d ++ charset:[Pref_MessageViewing defaultEncoding]]; ++ } ++ if(![cur_message contentType]) ++ { ++ [cur_message setContentType:@"text/plain"]; ++ } ++ else ++ { ++ ASSIGN( ++ cur_message, ++ [(CWMessage *)[CWMessage alloc] initWithData: d ++ charset:[cur_message charset]] ++ ); ++ } + [d release]; + { + const char *c; +@@ -819,17 +839,17 @@ + { + NSString *s=(NSString *)l->object; + NSRange r; +- UUFile *fw; +- r=[MimeUtility rangeOfUUEncodedStringFromString: s ++ CWUUFile *fw; ++ r=[CWUUFile rangeOfUUEncodedStringFromString: s + range: NSMakeRange(0,[s length])]; + +- fw=[MimeUtility fileFromUUEncodedString: [s substringWithRange: r]]; ++ fw=[CWUUFile fileFromUUEncodedString: [s substringWithRange: r]]; + filename=AUTORELEASE(RETAIN([fw name])); + d=AUTORELEASE(RETAIN([fw data])); + } + else + { +- Part *p=(Part *)l->object; ++ CWPart *p=(CWPart *)l->object; + d=(NSData *)[p content]; + filename=[p filename]; + } +@@ -926,6 +946,12 @@ + + mid=0; + ++ [[NSNotificationCenter defaultCenter] ++ addObserver: self ++ selector: @selector(encodingChanged:) ++ name: DefaultEncodingChangedNotification ++ object: nil]; ++ + return self; + } + +@@ -1154,6 +1180,11 @@ + [app_delegate composeFollowupToMessage: cur_message]; + } + ++-(void) encodingChanged: (NSNotification *)n ++{ ++ [self getData]; ++ [self displayMessage]; ++} + + @end + +diff -urNad lusernet.app-0.4.2~/NNTPSourceGUI.m NNTPSourceGUI.m +--- lusernet.app-0.4.2~/NNTPSourceGUI.m 2004-03-03 01:58:37.000000000 +0200 ++++ NNTPSourceGUI.m 2006-09-27 00:13:21.000000000 +0300 +@@ -347,7 +347,6 @@ + [win setTitle: _(@"NNTPSource properties")]; + [win setDelegate: self]; + [win autoSetupKeyViewChain]; +- [win release]; + + return self; + } +diff -urNad lusernet.app-0.4.2~/Pref_MessageViewing.h Pref_MessageViewing.h +--- lusernet.app-0.4.2~/Pref_MessageViewing.h 2002-03-11 02:06:46.000000000 +0200 ++++ Pref_MessageViewing.h 2006-09-27 00:13:21.000000000 +0300 +@@ -27,6 +27,7 @@ + + +(NSFont *) font1; + +(NSFont *) font2; +++(NSString *) defaultEncoding; + + @end + +diff -urNad lusernet.app-0.4.2~/Pref_MessageViewing.m Pref_MessageViewing.m +--- lusernet.app-0.4.2~/Pref_MessageViewing.m 2004-03-03 01:58:37.000000000 +0200 ++++ Pref_MessageViewing.m 2006-09-27 00:13:21.000000000 +0300 +@@ -8,11 +8,14 @@ + #include <Foundation/NSBundle.h> + + #include <AppKit/NSButton.h> ++#include <AppKit/NSPopUpButton.h> + #include <AppKit/NSTextField.h> + #include <GNUstepGUI/GSVbox.h> + #include <GNUstepGUI/GSHbox.h> + #include <AppKit/NSFont.h> + ++#include <Pantomime/CWCharset.h> ++ + #include "Pref_MessageViewing.h" + + +@@ -192,6 +195,7 @@ + { + NSTextField *f; + NSButton *b; ++ NSPopUpButton *pop; + GSHbox *hb; + + hb=[[GSHbox alloc] init]; +@@ -289,6 +293,49 @@ + + [top addView: hb enablingYResizing: NO]; + DESTROY(hb); ++ ++ [top addSeparator]; ++ ++ hb=[[GSHbox alloc] init]; ++ [hb setDefaultMinXMargin: 4]; ++ [hb setAutoresizingMask: NSViewWidthSizable]; ++ ++ f=[[NSTextField alloc] init]; ++ [f setStringValue: _(@"Default encoding ")]; ++ [f setEditable: NO]; ++ [f setDrawsBackground: NO]; ++ [f setBordered: NO]; ++ [f setBezeled: NO]; ++ [f setSelectable: NO]; ++ [f sizeToFit]; ++ [f setAutoresizingMask: 0]; ++ [hb addView: f enablingXResizing: NO]; ++ DESTROY(f); ++ ++ pop = [[NSPopUpButton alloc] init]; ++ [pop setPullsDown:NO]; ++ NSDictionary *charsets = [CWCharset allCharsets]; ++ NSEnumerator *en = [[charsets allValues] objectEnumerator]; ++ NSString *encoding; ++ while((encoding = [en nextObject])) ++ { ++ [pop addItemWithTitle:encoding]; ++ } ++ [pop selectItemWithTitle: ++ [charsets ++ objectForKey: ++ [sd objectForKey:@"DefaultEncoding"]]]; ++ [pop synchronizeTitleAndSelectedItem]; ++ [pop setTarget: self]; ++ [pop setAction: @selector(changeEncoding:)]; ++ [pop sizeToFit]; ++ [hb addView: pop enablingXResizing: NO]; ++ DESTROY(pop); ++ ++ ++ [top addView: hb enablingYResizing: NO]; ++ DESTROY(hb); ++ + } + + [self revert]; +@@ -334,5 +381,23 @@ + [f_cur setFont: f]; + } + ++-(void) changeEncoding:(id)sender ++{ ++ NSDictionary *charsets = [CWCharset allCharsets]; ++ sd=[NSUserDefaults standardUserDefaults]; ++ ++ [sender selectItemWithTitle:[sender titleOfSelectedItem]]; ++ [sender synchronizeTitleAndSelectedItem]; ++ ++ [sd setObject: ++ [[charsets allKeysForObject:[sender titleOfSelectedItem]] objectAtIndex:0] ++ forKey:@"DefaultEncoding"]; ++} ++ +++(NSString *) defaultEncoding ++{ ++ return [sd stringForKey:@"DefaultEncoding"]; ++} ++ + @end + +diff -urNad lusernet.app-0.4.2~/main.h main.h +--- lusernet.app-0.4.2~/main.h 2004-03-03 01:58:37.000000000 +0200 ++++ main.h 2006-09-27 00:13:21.000000000 +0300 +@@ -11,6 +11,8 @@ + @class FolderListController,LogWindowController,PreferencesWindowController; + @class Message; + ++extern NSString *DefaultEncodingChangedNotification; ++ + @interface AppDelegate : NSObject + { + NSApplication *app; +@@ -37,7 +39,7 @@ + @interface AppDelegate (prefs) + -(void) openPreferences: (id)sender; + @end +- ++ + + extern AppDelegate *app_delegate; + +diff -urNad lusernet.app-0.4.2~/main.m main.m +--- lusernet.app-0.4.2~/main.m 2004-03-03 01:58:37.000000000 +0200 ++++ main.m 2006-09-27 00:13:21.000000000 +0300 +@@ -11,6 +11,8 @@ + #include <AppKit/NSMenu.h> + #include <AppKit/NSWindow.h> + ++#include <Pantomime/CWCharset.h> ++ + #include "MsgDB.h" + + #include "LogWindowController.h" +@@ -36,6 +38,7 @@ + + #define LocationKey @"MessageDatabaseLocation" + ++NSString *DefaultEncodingChangedNotification = @"DefaultEncodingChangedNotification"; + + @interface NSMenu (im_lazy) + -(id <NSMenuItem>) addItemWithTitle: (NSString *)s; +@@ -209,6 +212,21 @@ + #endif + } + ++-(void) changeEncoding:(id)sender ++{ ++ NSDictionary *charsets = [CWCharset allCharsets]; ++ ++ // [sender selectItemWithTitle:[sender title]]; ++ // [sender synchronizeTitleAndSelectedItem]; ++ ++ [[NSUserDefaults standardUserDefaults] setObject: ++ [[charsets allKeysForObject:[sender title]] objectAtIndex:0] ++ forKey:@"DefaultEncoding"]; ++ ++ [[NSNotificationCenter defaultCenter] ++ postNotificationName: DefaultEncodingChangedNotification ++ object: nil]; ++} + + -(void) applicationWillFinishLaunching: (NSNotification *)n + { +@@ -307,6 +325,18 @@ + m=[[NSMenu alloc] init]; + /* [m addItemWithTitle: _(@"Open") + action: @selector(openMessage:)];*/ ++ m2=[[NSMenu alloc] init]; ++ ++ NSDictionary *charsets = [CWCharset allCharsets]; ++ NSEnumerator *en = [[charsets allValues] objectEnumerator]; ++ NSString *encoding; ++ while((encoding = [en nextObject])) ++ { ++ [m2 addItemWithTitle: encoding ++ action: @selector(changeEncoding:)]; ++ } ++ ++ [m setSubmenu: m2 forItem: [m addItemWithTitle: _(@"Change encoding...")]]; + [m addItemWithTitle: _(@"Toggle read/unread") + action: @selector(messageToggleRead:) + keyEquivalent: @"m"]; diff --git a/news/lusernet/pkg-descr b/news/lusernet/pkg-descr new file mode 100644 index 000000000000..b0f5f229afb3 --- /dev/null +++ b/news/lusernet/pkg-descr @@ -0,0 +1,3 @@ +LuserNET is an NNTP-based news reader for GNUstep. + +WWW: http://web.telia.com/~u42308495/alex/LuserNET/LuserNET.html diff --git a/news/lusernet/pkg-plist b/news/lusernet/pkg-plist new file mode 100644 index 000000000000..4d92aeee139f --- /dev/null +++ b/news/lusernet/pkg-plist @@ -0,0 +1,18 @@ +Local/Applications/LuserNET.app/LuserNET +Local/Applications/LuserNET.app/Resources/English.lproj/Localizable.strings +Local/Applications/LuserNET.app/Resources/French.lproj/Localizable.strings +Local/Applications/LuserNET.app/Resources/German.lproj/Localizable.strings +Local/Applications/LuserNET.app/Resources/Info-gnustep.plist +Local/Applications/LuserNET.app/Resources/LuserNET.desktop +Local/Applications/LuserNET.app/Resources/News.app.tiff +Local/Applications/LuserNET.app/Resources/Spanish.lproj/Localizable.strings +Local/Applications/LuserNET.app/Resources/Swedish.lproj/Localizable.strings +Local/Applications/LuserNET.app/library_paths.openapp +Local/Applications/LuserNET.app/stamp.make +@dirrm Local/Applications/LuserNET.app/Resources/Swedish.lproj +@dirrm Local/Applications/LuserNET.app/Resources/Spanish.lproj +@dirrm Local/Applications/LuserNET.app/Resources/German.lproj +@dirrm Local/Applications/LuserNET.app/Resources/French.lproj +@dirrm Local/Applications/LuserNET.app/Resources/English.lproj +@dirrm Local/Applications/LuserNET.app/Resources +@dirrm Local/Applications/LuserNET.app |