From 8efe2132733a1e469debac84b63a88cc0df46bc0 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 12 Jun 2020 18:23:45 -0500 Subject: [PATCH] vocabs: On use-vocab we should throw an error if the vocabulary does not exist. Also ui.pixel-formats.private does not exist so remove that. Fixes #2298. --- basis/ui/backend/gtk/gtk.factor | 2 +- core/vocabs/parser/parser.factor | 2 +- core/vocabs/vocabs.factor | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/basis/ui/backend/gtk/gtk.factor b/basis/ui/backend/gtk/gtk.factor index 2c3f493038..ea6e668758 100644 --- a/basis/ui/backend/gtk/gtk.factor +++ b/basis/ui/backend/gtk/gtk.factor @@ -9,7 +9,7 @@ math.vectors namespaces sequences strings system threads ui ui.backend ui.backend.gtk.input-methods ui.backend.gtk.io ui.backend.x11.keys ui.clipboards ui.event-loop ui.gadgets ui.gadgets.private ui.gadgets.worlds ui.gestures ui.pixel-formats -ui.pixel-formats.private ui.private vocabs.loader ; +ui.private vocabs.loader ; IN: ui.backend.gtk SINGLETON: gtk-ui-backend diff --git a/core/vocabs/parser/parser.factor b/core/vocabs/parser/parser.factor index a8e7e12a70..9cf97f2fd5 100644 --- a/core/vocabs/parser/parser.factor +++ b/core/vocabs/parser/parser.factor @@ -115,7 +115,7 @@ ERROR: unbalanced-private-declaration vocab ; vocab-name "Already using ``" "'' vocabulary" surround note. ] [ manifest get - [ [ load-vocab ] dip search-vocabs>> push ] + [ [ ?load-vocab ] dip search-vocabs>> push ] [ [ vocab-name ] dip search-vocab-names>> adjoin ] 2bi ] if ; diff --git a/core/vocabs/vocabs.factor b/core/vocabs/vocabs.factor index 7db0fb8598..419219b0c6 100644 --- a/core/vocabs/vocabs.factor +++ b/core/vocabs/vocabs.factor @@ -47,6 +47,11 @@ M: vocab lookup-vocab ; M: object lookup-vocab vocab-name dictionary get at ; +ERROR: no-vocab-named name ; + +: ?lookup-vocab ( vocab-spec -- vocab ) + dup lookup-vocab [ nip ] [ no-vocab-named ] if* ; + GENERIC: vocab-words-assoc ( vocab-spec -- assoc/f ) M: vocab vocab-words-assoc words>> ; @@ -156,3 +161,6 @@ M: string require : load-vocab ( name -- vocab ) [ require ] [ lookup-vocab ] bi ; + +: ?load-vocab ( name -- vocab ) + [ require ] [ ?lookup-vocab ] bi ;