Ignore:
Timestamp:
Oct 7, 2010, 8:27:00 PM (14 years ago)
Author:
juanger@…
Message:

Merging tzikis work during gsoc-10

Location:
contrib/MacPorts_Framework
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • contrib/MacPorts_Framework

  • contrib/MacPorts_Framework/MPHelperTool.m

    r65491 r72222  
    6060//fromt he request dictionary
    6161int notificationsFileDescriptor;
     62static int hasInstalledSignalToSocket = 0;
    6263BOOL hasSetFileDescriptor = NO;
    6364NSString * ipcFilePath;
     
    591592       
    592593    // Organise to have SIGINT delivered to a runloop callback.
    593     if (err == 0) {
     594    if (err == 0 && hasInstalledSignalToSocket == 0) {
    594595        sigset_t    justSIGINT;
    595596       
     
    604605                                                                        NULL
    605606                                                                        );
     607                                                                       
     608        hasInstalledSignalToSocket = 1;
    606609                //asl_NSLog(logClient , logMsg, ASL_LEVEL_DEBUG, @"MPHelperTool: IgnoreSigPipe Successful");
    607610                [ASLLogger logString:@"MPHelperTool: IgnoreSigPipe Successful"];
     
    658661       
    659662    // Organise to have SIGINT delivered to a runloop callback.
    660     if (err == 0) {
     663    if (err == 0 && hasInstalledSignalToSocket == 0) {
    661664        sigset_t    justSIGINT;
    662665       
     
    671674                                                                        NULL
    672675                                                                        );
     676               
     677                hasInstalledSignalToSocket = 1;
     678               
    673679                [ASLLogger logString:@"MPHelperTool: IgnoreSigPipe Successful"];
    674680    }
  • contrib/MacPorts_Framework/MPPort.h

    r65491 r72222  
    150150
    151151/*!
     152 @brief Computes the NSMutableArray object for key "defaults_variants" of the port
     153 */
     154- (void)checkDefaults;
     155
     156/*!
     157 @brief Computes the conflicts of the port
     158 */
     159- (void)checkConflicts;
     160
     161/*!
    152162 @brief Executes the specified target for this MPPort
    153163 @param target NSString target to be executed for this MPPort
  • contrib/MacPorts_Framework/MPPort.m

    r65491 r72222  
    9191        // create sets of the depends_* tokenized properties that contain only the dependency name, not the dependency type
    9292        // make the descriptions readable
     93       
     94        if([string rangeOfString:@"default_variants"].location != NSNotFound)
     95        {
     96                NSLog(@"%@", string);
     97        }
     98
    9399        if ([self objectForKey:@"maintainers"] != nil) {
    94100                [self setObject:[self objectForKey:@"maintainers"] forKey:@"maintainersAsString"];             
     
    118124                [self addDependencyAsPortName:@"depends_run"];
    119125        }
     126        if ([self objectForKey:@"depends_fetch"] != nil) {
     127                [self setObject:[self objectForKey:@"depends_fetch"] forKey:@"depends_fetchAsString"];
     128                [self setObject:[interpreter arrayFromTclListAsString:[self objectForKey:@"depends_fetch"]] forKey:@"depends_fetch"];
     129                [self addDependencyAsPortName:@"depends_fetch"];
     130        }       
     131        if ([self objectForKey:@"depends_extract"] != nil) {
     132                [self setObject:[self objectForKey:@"depends_extract"] forKey:@"depends_extractAsString"];
     133                [self setObject:[interpreter arrayFromTclListAsString:[self objectForKey:@"depends_extract"]] forKey:@"depends_extract"];
     134                [self addDependencyAsPortName:@"depends_extract"];
     135        }       
     136       
     137        //Code for fetching default variants
     138        if ([self objectForKey:@"default_variants"] != nil) {
     139                //NSLog(@"Default Variants str: %@", string);
     140                [self setObject:[self objectForKey:@"default_variants"] forKey:@"default_variantsAsString"];
     141                [self setObject:[interpreter arrayFromTclListAsString:[self objectForKey:@"default_variants"]] forKey:@"default_variants"];
     142        }
     143         
    120144       
    121145        @try {
     
    248272           error:(NSError **)execError{
    249273       
    250         NSString *opts;
    251         NSString *vrnts;
     274        NSMutableString *opts;
     275        NSMutableString *vrnts;
    252276        MPInterpreter *interpreter;
    253         opts = [NSString stringWithString:@" "];
    254         vrnts = [NSString stringWithString:@" "];
     277        opts = [NSMutableString stringWithCapacity:50];
     278        [opts setString:@"{ "];
     279        vrnts = [NSMutableString stringWithCapacity:50];
     280        [vrnts setString:@"{ "];
    255281        interpreter = [MPInterpreter sharedInterpreter];
    256282       
     283       
    257284        if (options != NULL) {
    258                 opts = [NSString stringWithString:[options componentsJoinedByString:@" "]];
    259         }
     285                [opts appendString: [NSString stringWithString:[options componentsJoinedByString:@" "]]];
     286        }
     287       
     288        [opts appendString: @" }"];
     289
    260290        if (variants != NULL) {
    261                 vrnts = [NSString stringWithString:[variants componentsJoinedByString:@" "]];
    262         }
    263        
     291                [vrnts appendString: [NSString stringWithString:[variants componentsJoinedByString:@" "]]];
     292        }
     293       
     294        [vrnts appendString: @" }"];
     295       
     296        //NSLog(@"Variants String: %@", vrnts);
    264297        //Send Global Notifications and update MPNotifications variable
    265298        [self sendGlobalExecNotification:target withStatus:@"Started"];
     
    267300        [[MPNotifications sharedListener] setPerformingTclCommand:target];
    268301       
     302        /*
     303        NSLog(@"Interpreter string:\n%@",[NSString stringWithFormat:
     304                                                                          @"set portHandle [mportopen  %@  %@  %@]; mportexec  $portHandle %@; mportclose $portHandle",
     305                                                                          [self valueForKey:@"porturl"], opts, vrnts, target]);
     306        */
    269307    [interpreter evaluateStringWithPossiblePrivileges:
    270308        [NSString stringWithFormat:
     
    350388- (void)upgradeWithError:(NSError **)mError {
    351389        [self execPortProc:@"mportupgrade" withOptions:nil version:@"" error:mError];
     390}
     391
     392//This function is called to initialize the array for the'default_variants' key for a port, which we can't do for all ports when loading
     393- (void)checkDefaults
     394{
     395        //Check for default variants only if this is the first time we are checking
     396        if ([self objectForKey:@"default_variants"] == nil)
     397        {
     398                //NSArray *defaultVariants = [port valueForKey:@"defaultVariants"];
     399                NSMutableArray *defaultVariants= [NSMutableArray arrayWithCapacity:10];
     400                char port_command[256];
     401               
     402                //Build the port variants command
     403                strcpy(port_command, "port variants ");
     404                strcat(port_command, [[self objectForKey:@"name"] cStringUsingEncoding: NSASCIIStringEncoding]);
     405                strcat(port_command, " | grep \"\\[+]\" | sed 's/.*\\]//; s/:.*//' >> mpfw_default_variants");
     406               
     407                //Make the CLI call
     408                system(port_command);
     409                //Open the output file
     410                FILE * file = fopen("mpfw_default_variants", "r");
     411               
     412                //Read all default_variants
     413                char buffer[256];
     414                while(!feof(file))
     415                {
     416                        char * temp = fgets(buffer,256,file);
     417                        if(temp == NULL) continue;
     418                        buffer[strlen(buffer)-1]='\0';
     419                        //Add the variant in the Array
     420                        [defaultVariants addObject:[NSString stringWithCString:buffer]];
     421                }
     422                //Close and delete
     423                fclose(file);
     424                unlink("mpfw_default_variants");
     425               
     426                NSLog(@"Default variants count: %i", [defaultVariants count]);
     427                //Code for fetching default variants
     428                [self setObject:[NSString stringWithString:[defaultVariants componentsJoinedByString:@" "]]  forKey:@"default_variantsAsString"];
     429                [self setObject:defaultVariants forKey:@"default_variants"];           
     430        }
     431
     432}
     433
     434//This function is called to initiate the conflicts for a specific port, which we can't do for all ports when loading, much like
     435//the default_variants
     436- (void)checkConflicts;
     437{
     438        //Check for only if this is the first time we are checking
     439        if ([self objectForKey:@"conflicts"] == nil)
     440        {
     441               
     442                NSMutableArray *conflicts = [NSMutableArray arrayWithCapacity:20];
     443               
     444                char *script= " | python -c \"import re,sys;lines=sys.stdin.readlines();print '\\n'.join('%s,%s' % (re.sub(r'[\\W]','',lines[i-1].split()[0].rstrip(':')),','.join(l.strip().split()[3:])) for i, l in enumerate(lines) if l.strip().startswith('* conflicts'))\" >> /tmp/mpfw_conflict";
     445                char command[512];
     446                strcpy(command,"port variants ");
     447                strcat(command, [[self name] UTF8String]);
     448                strcat(command, script);
     449                //printf("\n%s\n", command);
     450                system(command);
     451               
     452                //Open the output file
     453                FILE * file = fopen("/tmp/mpfw_conflict", "r");
     454               
     455                //Read all conflicts
     456                char buffer[256];
     457                while(!feof(file))
     458                {
     459                        char * temp = fgets(buffer,256,file);
     460                        if(temp == NULL) continue;
     461                        buffer[strlen(buffer)-1]='\0';
     462                        //Add the variant in the Array
     463                        //printf("buffer:\n%s\n",buffer);
     464                       
     465                        char *token;
     466                        char *search = ",";
     467                       
     468                        token = strtok(buffer, search);
     469                        //printf("token: %s\n",token);
     470                        if(token == NULL) break;
     471                       
     472                        NSString *variant = [NSString stringWithCString:token];
     473                        NSMutableArray *conflictsWith=[NSMutableArray arrayWithCapacity:10];
     474                        NSLog(@"%@", variant);
     475                        while ((token = strtok(NULL, search)) != NULL)
     476                        {
     477                                NSLog(@"token: %@",[NSString stringWithCString:token]);
     478                                [conflictsWith addObject:[NSString stringWithCString:token]];
     479                                //NSLog(@"count %i",[[checkboxes[i] conflictsWith] count]);
     480                        }
     481                       
     482                        NSDictionary *variantConflictsWith = [NSDictionary dictionaryWithObject:conflictsWith forKey:variant];
     483                        [conflicts addObject:variantConflictsWith];
     484                        //[defaultVariants addObject:[NSString stringWithCString:buffer]];
     485                }
     486                //Close and delete
     487                fclose(file);
     488                unlink("/tmp/mpfw_conflict");           
     489
     490                [self setObject:conflicts forKey:@"conflicts"];
     491        }               
    352492}
    353493
  • contrib/MacPorts_Framework/MPPortProcess.m

    r65491 r72222  
    8282    portProcessConnection = [NSConnection defaultConnection];
    8383    NSString *PKGPath = [[NSString alloc] initWithCString:argv[1] encoding:NSUTF8StringEncoding];
    84 //    NSString *portProcessInitPath = [[NSString alloc] initWithCString:argv[2] encoding:NSUTF8StringEncoding];
    8584   
    8685    MPPortProcess *portProcess = [[MPPortProcess alloc] initWithPKGPath:PKGPath];
  • contrib/MacPorts_Framework/MacPorts.Framework.xcodeproj/project.pbxproj

    r65513 r72222  
    706706                        buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "MacPorts.Framework" */;
    707707                        compatibilityVersion = "Xcode 2.4";
     708                        developmentRegion = English;
    708709                        hasScannedForEncodings = 1;
     710                        knownRegions = (
     711                                English,
     712                                Japanese,
     713                                French,
     714                                German,
     715                        );
    709716                        mainGroup = 0867D691FE84028FC02AAC07 /* MacPorts Foundation */;
    710717                        productRefGroup = 034768DFFF38A50411DB9C8B /* Products */;
  • contrib/MacPorts_Framework/init.tcl

    r65491 r72222  
    22package require notifications
    33
    4 
    5 #Set ui_options to log all messages to stdout and notify system
    6 #filtering is done on the Obj-C side of things
    7 # set ui_options(ports_debug) "yes"
    8 set ui_options(ports_verbose) "yes"
    9 
    10 # ui_options accessor
    11 proc ui_isset {val} {
    12         global ui_options
    13         if {[info exists ui_options($val)]} {
    14                 if {$ui_options($val) == "yes"} {
    15                         return 1
    16                 }
    17         }
    18         return 0
    19 }
    20 
    21 # UI Callback
    22 proc ui_prefix {priority} {
    23     switch $priority {
    24         debug {
    25                 return "DEBUG: "
    26         }
    27         error {
    28                 return "Error: "
    29         }
    30         warn {
    31                 return "Warning: "
    32         }
    33         default {
    34                 return ""
    35         }
    36     }
    37 }
    38 
    39 proc ui_channels {priority} {
    40     global logfd
    41     switch $priority {
    42         debug {
    43             if {[ui_isset ports_debug]} {
    44                 return {stderr}
    45             } else {
    46                 return {}
    47             }
    48         }
    49         info {
    50             if {[ui_isset ports_verbose]} {
    51                 return {stdout}
    52             } else {
    53                 return {}
    54             }
    55         }
    56         msg {
    57             if {[ui_isset ports_quiet]} {
    58               return {}
    59             } else {
    60               return {stdout}
    61             }
    62         }
    63         error {
    64                 return {stderr}
    65         }
    66         default {
    67                 return {stdout}
    68         }
    69     }
    70 }
    71 
    72 
    73 
    74 
    75 #Modifying UI initialization to enable notifications
    76 #Redefine ui_$pritority to throw global notifications
    77 #This is currently under works ... a reasonable solution
    78 #should be coming up soon
    79 proc macports::ui_init {priority args} {
     4proc ui_init {priority prefix channels message} {
    805    switch $priority {
    816                msg {
     
    849                debug {
    8510                        set nottype "MPDebugNotification"
    86                         puts "Recieved Debug"
     11                        puts "Recieved Debug init"
    8712                }
    8813                warn {
     
    10126                }       
    10227        }
    103  
    104     # Get the list of channels.
    105     if {[llength [info commands ui_channels]] > 0} {
    106         set channels [ui_channels $priority]
    107     } else {
    108         set channels [ui_channels_default $priority]
    109     }
    11028
    111     # Simplify ui_$priority.
    112     set nbchans [llength $channels]
    113     if {$nbchans == 0} {
    114         proc ::ui_$priority {args} [subst {
    115           notifications send $nottype "$chan $prefix" "\$str"
    116         }]
    117     } else {
    118         if {[llength [info commands ui_prefix]] > 0} {
    119             set prefix [ui_prefix $priority]
    120         } else {
    121             set prefix [ui_prefix_default $priority]
    122         }
     29    proc ::ui_$priority {message} [subst {
     30        notifications send $nottype "$channels($priority) $prefix" "\$message"
     31        ui_message $priority $prefix "" "\$message"
     32    }]
     33}
    12334
    124         if {[llength [info commands ::ui_init]] > 0} {
    125             eval ::ui_init $priority $prefix $channels $args
    126         } else {
    127             if {$nbchans == 1} {
    128                 set chan [lindex $channels 0]
    129                 proc ::ui_$priority {args} [subst {
    130                   if {\[lindex \$args 0\] == "-nonewline"} {
    131                     puts $chan "$prefix\[lindex \$args 1\]"
    132                     notifications send $nottype "$chan $prefix" "\[lindex \$args 1\]"
    133                   } else {
    134                     puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    135                     notifications send $nottype "$chan $prefix" "\[lindex \$args 0\]"
    136                   }
    137                 }]
    138             } else {
    139                 proc ::ui_$priority {args} [subst {
    140                     foreach chan \$channels {
    141                       if {\[lindex \$args 0\] == "-nonewline"} {
    142                         puts $chan "$prefix\[lindex \$args 1\]"
    143                         notifications send $nottype "$chan $prefix" "\[lindex \$args 1\]"
    144                       } else {
    145                         puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    146                         notifications send $nottype "$chan $prefix" "\[lindex \$args 0\]"
    147                       }
    148                     }
    149                 }]
    150             }
    151         }
    152 
    153         # Call ui_$priority
    154         eval ::ui_$priority $args
    155     }
    156 }
    15735
    15836
     
    16139#in macports.tcl.
    16240proc mportuninstall {portname {v ""} {optionslist ""}} {
    163         if {[catch {portuninstall::uninstall $portname $v $optionslist} result]} {
     41        if {[catch {registry_uninstall::uninstall $portname $v $optionslist} result]} {
    16442               
    16543                        global errorInfo
  • contrib/MacPorts_Framework/interpInit.tcl

    r65491 r72222  
    33
    44
     5proc ui_init {priority prefix channels message} {
     6    switch $priority {
     7                msg {
     8                        set nottype "MPMsgNotification"
     9                }
     10                debug {
     11                        set nottype "MPDebugNotification"
     12                        puts "Recieved Debug init"
     13                }
     14                warn {
     15                        set nottype "MPWarnNotification"
     16                }
     17                error {
     18                        set nottype "MPErrorNotification"
     19                        puts "Recieved Error"
     20                }
     21                info {
     22                        set nottype "MPInfoNotification"
     23                        puts "Recieved Info"
     24                }
     25                default {
     26                        set nottype "MPDefaultNotification"
     27                }       
     28        }
    529
    6 #Set ui_options to log all messages to stdout and notify system
    7 #filtering is done on the Obj-C side of things
    8 set ui_options(ports_debug) "yes"
    9 set ui_options(ports_verbose) "yes"
    10 
    11 # ui_options accessor
    12 proc ui_isset {val} {
    13         global ui_options
    14         if {[info exists ui_options($val)]} {
    15                 if {$ui_options($val) == "yes"} {
    16                         return 1
    17                 }
    18         }
    19         return 0
    20 }
    21 
    22 # UI Callback
    23 proc ui_prefix {priority} {
    24     switch $priority {
    25         debug {
    26                 return "DEBUG: "
    27         }
    28         error {
    29                 return "Error: "
    30         }
    31         warn {
    32                 return "Warning: "
    33         }
    34         default {
    35                 return ""
    36         }
    37     }
    38 }
    39 
    40 proc ui_channels {priority} {
    41     global logfd
    42     switch $priority {
    43         debug {
    44             if {[ui_isset ports_debug]} {
    45                 return {stderr}
    46             } else {
    47                 return {}
    48             }
    49         }
    50         info {
    51             if {[ui_isset ports_verbose]} {
    52                 return {stdout}
    53             } else {
    54                 return {}
    55             }
    56         }
    57         msg {
    58             if {[ui_isset ports_quiet]} {
    59               return {}
    60             } else {
    61               return {stdout}
    62             }
    63         }
    64         error {
    65                 return {stderr}
    66         }
    67         default {
    68                 return {stdout}
    69         }
    70     }
    71 }
    72 
    73 
    74 
    75 #Modifying UI initialization to enable notifications
    76 #Redefine ui_$pritority to throw global notifications
    77 #This is currently under works ... a reasonable solution
    78 #should be coming up soon
    79 proc macports::ui_init {priority args} {
    80     switch $priority {
    81       msg {
    82         set nottype "MPMsgNotification"
    83       }
    84       debug {
    85         set nottype "MPDebugNotification"
    86         puts "Recieved Debug"
    87       }
    88       warn {
    89         set nottype "MPWarnNotification"
    90       }
    91       error {
    92         set nottype "MPErrorNotification"
    93         puts "Recieved Error"
    94       }
    95       info {
    96         set nottype "MPInfoNotification"
    97         puts "Recieved Info"
    98       }
    99       default {
    100         set nottype "MPDefaultNotification"
    101       }
    102     }
    103 
    104     # Get the list of channels.
    105     if {[llength [info commands ui_channels]] > 0} {
    106         set channels [ui_channels $priority]
    107     } else {
    108         set channels [ui_channels_default $priority]
    109     }
    110    
    111     #set channels [ui_channels $priority]
    112    
    113     # Simplify ui_$priority.
    114     set nbchans [llength $channels]
    115     if {$nbchans == 0} {
    116         proc ::ui_$priority {str} [subst {
    117           simplelog "$nottype $chan $prefix" "\$str"
    118         }]
    119     } else {
    120       if {[llength [info commands ui_prefix]] > 0} {
    121           set prefix [ui_prefix $priority]
    122       } else {
    123           set prefix [ui_prefix_default $priority]
    124       }
    125 
    126       if {[llength [info commands ::ui_init]] > 0} {
    127           eval ::ui_init $priority $prefix $channels $args
    128       } else {
    129         if {$nbchans == 1} {
    130           set chan [lindex $channels 0]
    131 
    132           proc ::ui_$priority {args} [subst {
    133             if {\[lindex \$args 0\] == "-nonewline"} {
    134               puts $chan "$prefix\[lindex \$args 1\]"
    135               simplelog "$nottype $chan $prefix" "\[lindex \$args 1\]"
    136             } else {
    137               puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    138               simplelog "$nottype $chan $prefix" "\[lindex \$args 0\]"
    139             }
    140           }]
    141         } else {
    142           proc ::ui_$priority {args} [subst {
    143             foreach chan \$channels {
    144               if {\[lindex \$args 0\] == "-nonewline"} {
    145                 puts $chan "$prefix\[lindex \$args 1\]"
    146                 simplelog "$nottype $chan $prefix" "\[lindex \$args 1\]"
    147               } else {
    148                 puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    149                 simplelog "$nottype $chan $prefix" "\[lindex \$args 0\]"
    150               }
    151             }
    152           }]
    153         }
    154       }
    155 
    156       # Call ui_$priority
    157       eval ::ui_$priority $args
    158     }
     30    proc ::ui_$priority {message} [subst {
     31        simplelog "$nottype $channels($priority) $prefix" "\$message"
     32        ui_message $priority $prefix "" "\$message"
     33    }]
    15934}
    16035
     
    16540set mp_empty_list [list]
    16641proc mportuninstall {portname {v ""} {optionslist ""} } {
    167         if {[catch {portuninstall::uninstall $portname $v [array get options]} result]} {
     42        if {[catch {registry_uninstall::uninstall $portname $v [array get options]} result]} {
    16843               
    16944                        global errorInfo
  • contrib/MacPorts_Framework/portProcessInit.tcl

    r65491 r72222  
    33
    44
    5 
    6 #Set ui_options to log all messages to stdout and notify system
    7 #filtering is done on the Obj-C side of things
    8 set ui_options(ports_debug) "yes"
    9 set ui_options(ports_verbose) "yes"
    10 
    11 # ui_options accessor
    12 proc ui_isset {val} {
    13         global ui_options
    14         if {[info exists ui_options($val)]} {
    15                 if {$ui_options($val) == "yes"} {
    16                         return 1
    17                 }
    18         }
    19         return 0
    20 }
    21 
    22 # UI Callback
    23 proc ui_prefix {priority} {
    24     switch $priority {
    25         debug {
    26                 return "DEBUG: "
    27         }
    28         error {
    29                 return "Error: "
    30         }
    31         warn {
    32                 return "Warning: "
    33         }
    34         default {
    35                 return ""
    36         }
    37     }
    38 }
    39 
    40 proc ui_channels {priority} {
    41     global logfd
    42     switch $priority {
    43         debug {
    44             if {[ui_isset ports_debug]} {
    45                 return {stderr}
    46             } else {
    47                 return {}
    48             }
    49         }
    50         info {
    51             if {[ui_isset ports_verbose]} {
    52                 return {stdout}
    53             } else {
    54                 return {}
    55                         }
    56                 }
    57         msg {
    58             if {[ui_isset ports_quiet]} {
    59                 return {}
    60                         } else {
    61                                 return {stdout}
    62                         }
    63                 }
    64         error {
    65                 return {stderr}
    66         }
    67         default {
    68                 return {stdout}
    69         }
    70     }
    71 }
    72 
    73 
    74 
    75 #Modifying UI initialization to enable notifications
    76 #Redefine ui_$pritority to throw global notifications
    77 #This is currently under works ... a reasonable solution
    78 #should be coming up soon
    79 proc macports::ui_init {priority args} {
     5proc ui_init {priority prefix channels message} {
    806    switch $priority {
    817                msg {
     
    8410                debug {
    8511                        set nottype "MPDebugNotification"
    86                         puts "Recieved Debug"
     12                        puts "Recieved Debug init"
    8713                }
    8814                warn {
     
    10127                }       
    10228        }
    103  
    104     # Get the list of channels.
    105     if {[llength [info commands ui_channels]] > 0} {
    106         set channels [ui_channels $priority]
    107     } else {
    108         set channels [ui_channels_default $priority]
    109     }
    11029
    111     # Simplify ui_$priority.
    112     set nbchans [llength $channels]
    113     if {$nbchans == 0} {
    114         proc ::ui_$priority {args} [subst {
    115           simplelog "$nottype $chan $prefix" "\$str"
    116         }]
    117     } else {
    118         if {[llength [info commands ui_prefix]] > 0} {
    119             set prefix [ui_prefix $priority]
    120         } else {
    121             set prefix [ui_prefix_default $priority]
    122         }
    123 
    124         if {[llength [info commands ::ui_init]] > 0} {
    125             eval ::ui_init $priority $prefix $channels $args
    126         } else {
    127             if {$nbchans == 1} {
    128                 set chan [lindex $channels 0]
    129                 proc ::ui_$priority {args} [subst {
    130                   if {\[lindex \$args 0\] == "-nonewline"} {
    131                     puts $chan "$prefix\[lindex \$args 1\]"
    132                     simplelog "$nottype $chan $prefix" "\[lindex \$args 1\]"
    133                   } else {
    134                     puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    135                     simplelog "$nottype $chan $prefix" "\[lindex \$args 0\]"
    136                   }
    137                 }]
    138             } else {
    139                 proc ::ui_$priority {args} [subst {
    140                     foreach chan \$channels {
    141                       if {\[lindex \$args 0\] == "-nonewline"} {
    142                         puts $chan "$prefix\[lindex \$args 1\]"
    143                         simplelog "$nottype $chan $prefix" "\[lindex \$args 1\]"
    144                       } else {
    145                         puts -nonewline $chan "$prefix\[lindex \$args 1\]"
    146                         simplelog "$nottype $chan $prefix" "\[lindex \$args 0\]"
    147                       }
    148                     }
    149                 }]
    150             }
    151         }
    152 
    153         # Call ui_$priority
    154         eval ::ui_$priority $args
    155     }
     30    proc ::ui_$priority {message} [subst {
     31        simplelog "$nottype $channels($priority) $prefix" "\$message"
     32        ui_message $priority $prefix "" "\$message"
     33    }]
    15634}
    15735
     
    16240set mp_empty_list [list]
    16341proc mportuninstall {portname {v ""} {optionslist ""} } {
    164         if {[catch {portuninstall::uninstall $portname $v [array get options]} result]} {
     42        if {[catch {registry_uninstall::uninstall $portname $v [array get options]} result]} {
    16543               
    16644                        global errorInfo
Note: See TracChangeset for help on using the changeset viewer.