Revision: 4268
http://skim-app.svn.sourceforge.net/skim-app/?rev=4268&view=rev
Author: hofman
Date: 2008-07-21 13:00:32 +0000 (Mon, 21 Jul 2008)
Log Message:
-----------
Allow passing files for text and rtf forms of notes to write to skimnotes tool.
Modified Paths:
--------------
trunk/SkimNotes/skimnotes.m
Modified: trunk/SkimNotes/skimnotes.m
===================================================================
--- trunk/SkimNotes/skimnotes.m 2008-07-21 12:03:13 UTC (rev 4267)
+++ trunk/SkimNotes/skimnotes.m 2008-07-21 13:00:32 UTC (rev 4268)
@@ -3,11 +3,11 @@
#import "SKNAgentListener.h"
#import "SKNUtilities.h"
-static char *usageStr = "Usage:\n skimnotes get [-format skim|text|rtf]
PDF_FILE [NOTES_FILE|-]\n skimnotes set PDF_FILE [SKIM_FILE|-]\n skimnotes
remove PDF_FILE\n skimnotes convert IN_PDF_FILE [OUT_PDF_FILE]\n skimnotes
agent [SERVER_NAME]\n skimnotes protocol\n skimnotes help [VERB]\n skimnotes
version";
+static char *usageStr = "Usage:\n skimnotes get [-format skim|text|rtf]
PDF_FILE [NOTES_FILE|-]\n skimnotes set PDF_FILE [SKIM_FILE|-] [TEXT_FILE]
[RTF_FILE]\n skimnotes remove PDF_FILE\n skimnotes convert IN_PDF_FILE
[OUT_PDF_FILE]\n skimnotes agent [SERVER_NAME]\n skimnotes protocol\n skimnotes
help [VERB]\n skimnotes version";
static char *versionStr = "SkimNotes command-line client, version 2.3";
static char *getHelpStr = "skimnotes get: read Skim notes from a PDF\nUsage:
skimnotes get [-format skim|text|rtf] PDF_FILE [NOTES_FILE|-]\n\nReads Skim,
Text, or RTF notes from extended attributes of PDF_FILE or the contents of PDF
bundle PDF_FILE and writes to NOTES_FILE or standard output.\nUses notes file
with same base name as PDF_FILE if SKIM_FILE is not provided.\nReads Skim notes
when no format is provided.";
-static char *setHelpStr = "skimnotes set: write Skim notes to a PDF\nUsage:
skimnotes set PDF_FILE [SKIM_FILE|-]\n\nWrites notes to extended attributes of
PDF_FILE or the contents of PDF bundle PDF_FILE from SKIM_FILE or standard
input.\nUses notes file with same base name as PDF_FILE if SKIM_FILE is not
provided.";
+static char *setHelpStr = "skimnotes set: write Skim notes to a PDF\nUsage:
skimnotes set PDF_FILE [SKIM_FILE|-] [TEXT_FILE] [RTF_FILE]\n\nWrites notes to
extended attributes of PDF_FILE or the contents of PDF bundle PDF_FILE from
SKIM_FILE or standard input.\nUses notes file with same base name as PDF_FILE
if SKIM_FILE is not provided. Writes a default form for the text formats based
on the contents of SKIM_FILE if TEXT_FILE and/or RTF_FILE are not provided.";
static char *removeHelpStr = "skimnotes remove: delete Skim notes from a
PDF\nUsage: skimnotes remove PDF_FILE\n\nRemoves the Skim notes from the
extended attributes of PDF_FILE or from the contents of PDF bundle PDF_FILE.";
static char *convertHelpStr = "skimnotes convert: convert between a PDF file
and a PDF bundle\nUsage: skimnotes convert IN_PDF_FILE
[OUT_PDF_FILE]\n\nConverts a PDF file IN_PDF_FILE to a PDF bundle OUT_PDF_FILE
or a PDF bundle IN_PDF_FILE to a PDF file OUT_PDF_FILE.\nUses a file with same
base name as IN_PDF_FILE if OUT_PDF_FILE is not provided.";
static char *agentHelpStr = "skimnotes agent: run the Skim Notes agent\nUsage:
skimnotes agent [SERVER_NAME]\n\nRuns a Skim Notes agent server with server
name SERVER_NAME, to which a Cocoa application can connect using DO.\nWhen
SERVER_NAME is not provided, a unique name is generated and returned on
standard output.\nThe DO server conforms to the following formal [EMAIL
PROTECTED] SKNAgentListenerProtocol\n- (bycopy NSData *)SkimNotesAtPath:(in
bycopy NSString *)aFile;\n- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString
*)aFile;\n- (bycopy NSData *)textNotesAtPath:(in bycopy NSString *)aFile
encoding:(NSStringEncoding)encoding;[EMAIL PROTECTED]";
@@ -254,12 +254,26 @@
} else if (action == SKNActionSet) {
if (notesPath && ([notesPath isEqualToString:STD_IN_OUT_FILE] ||
([fm fileExistsAtPath:notesPath isDirectory:&isDir] && isDir == NO))) {
NSData *data = nil;
+ NSString *textString = nil;
+ NSData *rtfData = nil;
if ([notesPath isEqualToString:STD_IN_OUT_FILE])
data = [[NSFileHandle fileHandleWithStandardInput]
readDataToEndOfFile];
else
data = [NSData dataWithContentsOfFile:notesPath];
+ if (argc > offset + 2) {
+ NSString *notesPath2 = SKNNormalizedPath([args
objectAtIndex:offset + 2]);
+ NSString *notesPath3 = argc < offset + 4 ? nil :
SKNNormalizedPath([args objectAtIndex:offset + 3]);
+ if ([[notesPath2 pathExtension]
caseInsensitiveCompare:TXT_EXTENSION] == NSOrderedSame || [[notesPath2
pathExtension] caseInsensitiveCompare:TEXT_EXTENSION] == NSOrderedSame)
+ textString = [NSString
stringWithContentsOfFile:notesPath2 encoding:NSUTF8StringEncoding error:NULL];
+ else if ([[notesPath3 pathExtension]
caseInsensitiveCompare:TXT_EXTENSION] == NSOrderedSame || [[notesPath3
pathExtension] caseInsensitiveCompare:TEXT_EXTENSION] == NSOrderedSame)
+ textString = [NSString
stringWithContentsOfFile:notesPath3 encoding:NSUTF8StringEncoding error:NULL];
+ if ([[notesPath3 pathExtension]
caseInsensitiveCompare:RTF_EXTENSION] == NSOrderedSame)
+ rtfData = [NSData dataWithContentsOfFile:notesPath3];
+ else if ([[notesPath2 pathExtension]
caseInsensitiveCompare:RTF_EXTENSION] == NSOrderedSame)
+ rtfData = [NSData dataWithContentsOfFile:notesPath2];
+ }
if ([data length])
- success = [fm writeSkimNotes:data textNotes:nil
RTFNotes:nil atPath:pdfPath error:&error];
+ success = [fm writeSkimNotes:data textNotes:textString
RTFNotes:rtfData atPath:pdfPath error:&error];
else if (data)
success = [fm removeSkimNotesAtPath:pdfPath error:&error];
} else {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit