Xなどのウィンドウシステムでは、セレクションを用いて異なるアプリケーション間でデータを転送できます。各ウィンドウシステムは任意の数のセレクションタイプを定義しており、それぞれが独自のデータを格納していますが、一般的に用いられるのはクリップボード、プライマリセレクション、セカンダリセレクションの3種類のみです。これらのセレクションを利用するEmacsコマンドについては、The GNU Emacs ManualのCut and Pasteを参照してください。本節では、ウィンドウシステムのセレクションを読み書きするための低レベル関数について解説します。特定のウィンドウシステムにおけるセレクションタイプやデータ形式に関するドキュメントについては、Accessing Selectionsを参照してください。
この関数は、ウィンドウシステムの選択を設定します。引数として、選択タイプ type と、そこに割り当てる値 data の2つを取ります。
type はシンボルである必要があり、通常は PRIMARY、SECONDARY、または CLIPBOARD のいずれかです。これらは一般に、X Window System
の規約に従い、大文字の名称を持つシンボルです。type が nil である場合、それは PRIMARY を表します。
data が nil
である場合は、選択範囲をクリアすることを意味します。そうでない場合、data
は文字列、シンボル、整数、オーバーレイ、または同一バッファを指す2つのマーカーのコンスである可能性があります。オーバーレイまたはマーカーのペアは、オーバーレイ内のテキスト、あるいはマーカー間のテキストを表します。引数
data も、有効な非ベクトル選択値のベクトルである場合があります。
data
が文字列の場合、そのテキストプロパティで個々のデータ型に使用される値を指定できます。例えば、data に
text/uri-list という名前のプロパティがある場合、データ型 text/uri-list を指定して gui-get-selection を呼び出すと、data
自体の代わりにそのプロパティの値が使用されます。
この関数は data を返します。
この関数は、Emacsや他のプログラムによって設定された選択範囲にアクセスします。オプション引数として type と data-type の2つを取ります。選択タイプである
type のデフォルト値は PRIMARY です。
data-type 引数は、他のプログラムから取得した生データを Lisp
データに変換する際に使用するデータ変換形式を指定します。デフォルトは STRING です。X
で有効なデータ型の一覧については X Selections
を、それ以外の形式については Other
Selections を参照してください。X Window システムでは、特に選択内容が非 ASCII
テキストになると想定される場合には、常に特定の data-type
を指定することを推奨します(この場合、Lisp プログラムでは data-type の値として UTF8_STRING を優先して使用すべきです)。これは、デフォルトの data-type 値である STRING が Latin-1
テキストしかサポートしておらず、昨今では多くの場合不十分であるためです。
この変数は、選択データをエンコードするために使用されるコーディングシステム(コーディングシステムを参照)を提供し、MS-WindowsおよびXで有効になります。また、MS-DOSポートがMS-Windows上で動作し、Windowsクリップボードのテキストにアクセスできる場合にも使用されます。
Xにおいて、この変数の値は、gui-get-selectionがテキストデータ型の一部に対する選択データをデコードする際に使用するコーディングシステムを指定するとともに、ポリモーフィックなTEXTデータ型の選択リクエストに対するレスポンスを、Unicodeではなくcompound-text-with-extensionsコーディングシステムでエンコードすることを強制します。
MS-Windowsでは、MS-Windowsのクリップボードがクリップボードデータの一部としてデコードに関する情報を提供し、状況に応じてUTF-16またはロケール固有のエンコーディングを自動的に使用するため、この変数は通常無視されます。この変数の値を設定するのは、旧バージョンのWindows 9Xのみを推奨します。それ以外の場合、クリップボードデータから提供される情報が何らかの理由で利用できないという極めて稀なケースでのみ使用されるためです。
この変数の既定値は、MS-Windows 98 または Me ではシステムコードページ、Windows
NT/W2K/XP/Vista/7/8/10/11 では utf-16le-dos、MS-DOS
では iso-latin-1-dos、それ以外の環境では nil となります。
後方互換性のため、Emacs 25.1 より前の gui-get-selection および
gui-set-selection の名称であった、廃止されたエイリアス x-get-selection と x-set-selection が存在します。