Diff
Not logged in

Differences From Artifact [051495fc84]:

To Artifact [7dbde3e417]:


454
455
456
457
458
459
460





461
462




463
464





465
466
467
468
469










470
471
472
473
474
475
476
477
478
479
480
481




482
483




484
485
486




487
488
489




490
491
492
493
494
495
496
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478





479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510



511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528







+
+
+
+
+


+
+
+
+


+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+












+
+
+
+


+
+
+
+
-
-
-
+
+
+
+



+
+
+
+







      error "package unknown handler is not hooked"
    }

    package unknown [set $varName]
    unset $varName
  }

  #
  # NOTE: This version argument to this procedure must be optional, because
  #       Eagle does not add a version argument when one is not supplied to
  #       the [package require] sub-command itself.
  #
  proc packageUnknownHandler { package {version ""} } {
    if {[catch {main $package $version} error(1)] == 0} then {
      #
      # NOTE: Success?  Just return and let Tcl (or Eagle) handle the
      #       rest.
      #
      return
    } else {
      #
      # NOTE: Failure?  Attempt to log the error message and then maybe
      #       try the original [package unknown] handler.
      #
      catch {
      tclLog [appendArgs \
          "pkgr: new handler failed for \"" $package " " $version \
          "\", error: " $error(1)]
    }

        tclLog [appendArgs \
            "pkgr: new handler failed for \"" [appendArgs [string \
            trim $package " " $version]] "\", error: " $error(1)]
      }
    }

    #
    # NOTE: See if there is a saved [package unknown] handler.  If so, we
    #       will attempt to use it.
    #
    set varName [appendArgs [getLookupVarNamePrefix] saved_package_unknown]

    if {[info exists $varName]} then {
      set oldHandler [set $varName]
    } else {
      set oldHandler ""
    }

    if {[string length $oldHandler] > 0} then {
      lappend oldHandler $package $version

      if {[catch {uplevel #0 $oldHandler} error(2)] == 0} then {
        #
        # NOTE: Success?  Just return and let Tcl (or Eagle) handle the
        #       rest.
        #
        return
      } else {
        #
        # NOTE: Failure?  Attempt to log the error message.
        #
        catch {
        tclLog [appendArgs \
            "pkgr: old handler failed for \"" $package " " $version \
            "\", error: " $error(2)]
          tclLog [appendArgs \
              "pkgr: old handler failed for \"" [appendArgs [string \
              trim $package " " $version]] "\", error: " $error(2)]
        }
      }
    }

    #
    # NOTE: Both [package unknown] handlers failed in some way, return the
    #       error messages (i.e. both of them).
    #
    error [array get error]
  }

  proc main { package version } {
    #
    # NOTE: Issue the lookup request to the remote package repository.
    #