//
// Tools.h
// TeXDist2
//
// Created by coder on 08/12/06.
// Copyright 2006-2014 Laurens'Tribune. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Common.h"
@class SystemVersion;
@interface NSURL(tools)
- (NSString *)Contents_Path4TeXDist2;
- (NSString *)Programs_Path4TeXDist2;
- (NSString *)Programs_texbin_Path4TeXDist2;
- (NSString *)Programs_texbin_Destination4TeXDist2;
@end
TEXDIST2_POSTFIX_CLASS(Tools)
@interface Tools: NSObject
+ (NSString *)Programs_RelativePath;
+ (NSString *)rootRelativePath;
+ (NSString *)LTD_Path;
+ (NSString *)LTD_DefaultTeX_Path;
+ (NSString *)LTD_DefaultTeX_Contents_Path;
+ (NSString *)LTD_DefaultTeX_Contents_Destination;
+ (NSString *)LTD_texdistmgr_Path;
+ (NSString *)ULB_texdistmgr_Path;
+ (NSString *)texdistmgr_DestinationForName:(NSString *)aName;
+ (NSString *)usr_texbin_Path;
+ (NSString *)usr_texbin_Destination;// /Library/TeX/Distributions/Programs/texbin
+ (NSString *)Programs_texbin_Destination;// ../.DefautTeX/Contents/Programs/texbin
+ (NSString *)Programs_texbin_Path;
+ (NSString *)Programs_texbin_RelativePath;
+ (NSString *)Contents_Component;
+ (NSString *)texdistExtension;
+ (NSString *)LTD_texbin_Path;
+ (NSDictionary *)minimumSystemVersionsByArch;
+ (NSDictionary *)maximumSystemVersionsByArch;
+ (SystemVersion *)minimumSystemVersion;
+ (SystemVersion *)maximumSystemVersion;
+ (NSArray *)expectedPrograms;
+ (NSArray *)architectureNames;
+ (NSBundle *)bundle;
+ (NSArray *)architecturePriority;
+ (NSString *)arch;
+ (BOOL) isResetOK;
+ (BOOL) resetOrReturnError:(NSError **)RORef;
+ (BOOL) is_texdistmgr_OKForName:(NSString *)name;
+ (BOOL) fix_texdistmgr_ForName:(NSString *)name error:(NSError **)RORef;
+ (BOOL) is_user_texdistmgr_OKForName:(NSString *)name;
+ (BOOL) fix_user_texdistmgr_ForName:(NSString *)name error:(NSError **)RORef;
#ifndef TeXDist2_HELPER
+ (BOOL) isAlternateKeyDown;
#endif
@end
#define IL18N(MSG) NSLocalizedStringFromTableInBundle((MSG), nil, [NSBundle bundleForClass:[Tools class]], @"None")
# define TeXDist2_RETURN_ERROR(CODE)\
do {\
if (RORef AND NOT *RORef) {\
*RORef = [NSError errorWithDomain:kTeXDist2ErrorDomainName \
code:CODE \
userInfo:@{ \
NSLocalizedDescriptionKey: [NSError localizedErrorMessage4TeXDist2:CODE] \
}];\
} else {\
[Logger logWithLevel:kTeXDist2MsgLevelERR \
format:@"TeXDist2 ERROR(%li): %@", \
CODE,[NSError localizedErrorMessage4TeXDist2:CODE]]; \
}\
} while (NO)
#define TeXDist2SetupLocalError(vROR,vCODE) \
do { \
if (vROR) { \
vROR = [NSError errorWithDomain:kTeXDist2ErrorDomainName \
code:vCODE \
userInfo:@{ \
NSLocalizedDescriptionKey: [NSError localizedErrorMessage4TeXDist2: vCODE], \
NSUnderlyingErrorKey: vROR \
}]; \
} else { \
vROR = [NSError errorWithDomain:kTeXDist2ErrorDomainName \
code:vCODE \
userInfo:@{ \
NSLocalizedDescriptionKey: [NSError localizedErrorMessage4TeXDist2: vCODE] \
}]; \
} \
} while (NO)
#define TeXDist2ForwardLocalError(vROR,vRORef,vCODE) \
do { \
TeXDist2SetupLocalError(vROR,vCODE); \
TeXDist2ForwardError(vROR,vRORef);\
} while (NO)
# define TeXDist2ForwardError(vROR,vRORef) \
do { \
if (ROR) {\
if (RORef AND NOT *RORef) { \
*RORef = ROR; \
} \
} \
} while (NO)