디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

어제 작성한 Ada 코드

나르시갤로그로 이동합니다. 2025.11.15 11:21:42
조회 91 추천 0 댓글 4

듀듕


-- clair-x.adb
-- Copyright (c) 2025 Hodong Kim <hodong@nimfsoft.art>
--
-- Permission to use, copy, modify, and/or distribute this software for any
-- purpose with or without fee is hereby granted.
--
-- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

with Ada.Exceptions;
with Interfaces.C;
with Interfaces.C.Strings;
with System;
with Clair.File;

package body Clair.X is
  use type System.Address;
  use type Interfaces.C.Strings.chars_ptr;
  use type Interfaces.C.int;

  function XOpenDisplay (display_name : Interfaces.C.Strings.chars_ptr :=
                         Interfaces.C.Strings.NULL_PTR)
  return Display_Handle;
  pragma import (c, XOpenDisplay, "XOpenDisplay");

  function XCloseDisplay (display : Display_Handle) return Interfaces.C.int;
  pragma import (c, XCloseDisplay, "XCloseDisplay");

  function XConnectionNumber (display : Display_Handle)
  return Interfaces.C.int;
  pragma import (c, XConnectionNumber, "XConnectionNumber");

  -- Ada-style wrappers
  function open_display (display_name : Interfaces.C.Strings.chars_ptr :=
                         Interfaces.C.Strings.NULL_PTR)
  return Display_Handle is
    display : Display_Handle := XOpenDisplay (display_name);
  begin
    if display = System.NULL_ADDRESS then
      declare
        message : constant String :=
          (if display_name = Interfaces.C.Strings.NULL_PTR
           then "XOpenDisplay failed (DISPLAY environment variable not set " &
                "or inaccessible)"
           else "XOpenDisplay failed for display_name:" &
             Interfaces.C.Strings.Value (display_name));
      begin
        raise Display_Open_Error with message;
      end;
    end if;
    return display;
  end open_display;

  procedure close_display (display : Display_Handle) is
    retval : Interfaces.C.int;
  begin
    if display /= System.NULL_ADDRESS then
      retval := XCloseDisplay (display);
      if retval /= 0 then
        raise Display_Close_Error with
          "XCloseDisplay failed (BadGC error possible)";
      end if;
    end if;
  end close_display;

  function get_connection_fd (display : Display_Handle)
  return Clair.File.Descriptor is
    fd : Interfaces.C.int;
  begin
    if display = System.NULL_ADDRESS then
      raise Invalid_Display_Handle with
        "get_connection_fd called with NULL display handle";
    end if;
    fd := XConnectionNumber (display);

    if fd < 0 then
      raise Connection_Fd_Error with
        "get_connection_fd returned invalid file descriptor: " &
        Interfaces.C.int'image (fd);
    end if;

    return Clair.File.Descriptor(fd);
  end get_connection_fd;

end Clair.X;

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뛰어난 운동 신경으로 남자와 싸워도 이길 것 같은 여자 스타는? 운영자 25/11/24 - -
이슈 [디시人터뷰] 충무로가 주목하는 신예, '세계의 주인' 서수빈 운영자 25/11/24 - -
AD 따뜻한 겨울나기! 방한용품 SALE 운영자 25/11/27 - -
2905022 위성 싸서 좋은점은 짱깨들밖에없잖누 ㅋㅋㅋㅋㅋ 타이밍뒷.통수한방(1.213) 01:41 32 0
2905021 위성 쏘는 이유 중 하나가 야당 감시다 발명도둑잡기(118.216) 01:33 29 0
2905017 내일 또 클리앙새끼를 누리호 ㅇㅈㄹ하면서 난리치겠누 [1] 타이밍뒷.통수한방(1.213) 01:23 47 0
2905015 냥덩이 잡아다가 누리호에 묶어서 쏴올렸다는데? 발명도둑잡기(118.216) 01:17 33 0
2905014 누리호 궤도 진입 성공 대 실패 예상 댓글좀 발명도둑잡기(118.216) 01:09 27 0
2905013 오늘의 영상 기획 실마리: 작품 발표를 로케트 발사처럼 패러디 발명도둑잡기(118.216) 00:58 28 0
2905010 조선이 위성을 쏘아도 한국은 도발이라고 표현하는데 발명도둑잡기(118.216) 00:31 35 0
2905009 법무부 영문 표기가 Ministry of Justice 발명도둑잡기(118.216) 00:14 29 0
2905008 DB 검색할 때 %like%는 걍 없다고 생각하고 써야함? [3] 프갤러(58.29) 00:14 49 0
2905006 이거 항소하면 무죄 내지는 벌금50까지 줄여지냐? 씨발국가야? ㅇㅇ(39.7) 11.26 83 2
2905005 대통령보다 연봉높은 우주청 현실 [1] 타이밍뒷.통수한방(1.213) 11.26 90 0
2905004 개인 자격으로 인공위성 만들어 발사한 미디어아티스트 송호준 [1] 발명도둑잡기(118.216) 11.26 32 0
2905003 해외기사들보면 삼성 lg제품 존나 광고하네 타이밍뒷.통수한방(1.213) 11.26 68 0
2905002 소프트웨어 엔지니어의 몰입 손발이시립디다갤로그로 이동합니다. 11.26 40 0
2905001 [공식] 누리호 4차 발사 현장 생중계 발명도둑잡기(118.216) 11.26 24 0
2905000 이거 ㅈㄴ 억울한데 항소할지 걍 벌받을지 추천좀 [1] ㅇㅇ(39.7) 11.26 78 0
2904999 슬슬 재취업들어가야겠군 ㅇㅇ(113.59) 11.26 42 0
2904998 R이나 파이썬같은 툴 돌릴 때 작동 원리에 대한 수학 ㅇㅇ(211.108) 11.26 35 0
2904997 음악인 나오는 영화 추천 <꿈의 제인> 발명도둑잡기(118.216) 11.26 34 0
2904994 충격적임.. ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 63 0
2904992 밤하늘 별빛이 호롱불 같구낭 ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 66 0
2904988 Wendy & Lisa-The Closing Of the Year 발명도둑잡기(118.216) 11.26 23 0
2904986 회사에서 AI 써야하는 이유가 있음 박민준갤로그로 이동합니다. 11.26 62 0
2904984 33살 인생 평가좀.. 진지함 정말이야, 절박해 [1] ㅇㅇ(39.7) 11.26 78 0
2904982 [발언대] ‘2인 선거구’ 없애야 민심 제대로 반영된다 발명도둑잡기(118.216) 11.26 24 0
2904981 Ada의 case when 최적화와 errno → 예외 매핑 나르시갤로그로 이동합니다. 11.26 27 0
2904979 무슨 맛으로 먹을까 떡볶이 인데 망했다. [1] 넥도리아(220.74) 11.26 41 0
2904976 통합 에러 핸들러와 이진 탐색 최적화 나르시갤로그로 이동합니다. 11.26 35 0
2904975 나님 주무십니당⭐+ ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 26 0
2904974 Go 쓰자 박민준갤로그로 이동합니다. 11.26 49 0
2904973 악플러 멍유 제발 일본에서 조난.. [4] ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 93 0
2904972 나님 누엇어양✨ ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 53 0
2904970 뉴비들을 위한 입시 면접 합격 가이드(따뜻한 조언)!M 프갤러(121.142) 11.26 50 1
2904969 누리호 발사 기원 우주 플레이리스트 발명도둑잡기(118.216) 11.26 30 0
2904966 나씻주준⭐+ [1] ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 59 0
2904963 27일 27번 타자가 친 공처럼 로케트 잘 올라갈까? 발명도둑잡기(118.216) 11.26 47 0
2904962 <UDT 우리동네 특공대>가 인기래서 생각나는 예전 글 [1] 발명도둑잡기(118.216) 11.26 55 0
2904961 C API를 위한 고성능 예외-에러코드(errcode) 매핑 전략 나르시갤로그로 이동합니다. 11.26 50 0
2904960 엣지 탭 천개쯤 띄우면 다 [1] 발명도둑잡기(118.216) 11.26 35 0
2904959 왜 갑자기 쌍ㅅ쌍 얘기야? 나르시갤로그로 이동합니다. 11.26 40 2
2904958 Clair 라이브러리: Ada 예외를 C API로 매핑하기 나르시갤로그로 이동합니다. 11.26 28 0
2904957 한국에 실제 있다는 중국 사이비종교 마을 ㄷㅅㄷ [1] ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 48 0
2904956 트위터가 공개한건 국적이 아니라 위치다 발명도둑잡기(118.216) 11.26 23 0
2904955 민주정의당 후보, 4대강 죽이기 광고모델 이순재 발명도둑잡기(118.216) 11.26 42 1
2904954 외모는 단점을 커버시키는 힘이 있다 [2] Move갤로그로 이동합니다. 11.26 58 0
2904953 짱깨 한국 여론조작 또 걸렸네 ㅋㅅㅋ ♥냥덩이의우웅한하룽♥갤로그로 이동합니다. 11.26 55 4
2904952 귀찮은데 말이 필요하나 루도그담당(58.233) 11.26 47 0
2904951 저능아씨는 여기서 살아 RyuDOG갤로그로 이동합니다. 11.26 45 1
2904950 프붕이들 솔직히 병신들이 도배하는거보다 러스트 얘기가 낫지? [4] 프갤러(110.8) 11.26 55 0
2904949 아아 하늘은 어째서 나를 낳고 RyuDOG갤로그로 이동합니다. 11.26 30 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2