2015-01-25 14 views
6

Trong khi biên soạn xterm Tôi đã xem qua một tùy chọn cấu hình tênNguyên mẫu hẹp là gì và tại sao tôi cần một mẫu thử nghiệm?

--enable-narrowproto enable narrow prototypes for X libraries 

(Sự phủ nhận của tùy chọn này là cần thiết để thực hiện công việc thanh cuộn dưới Cygwin, cùng với --disable-imake.)

Tôi biết rằng trong K & Các nguyên mẫu RC không tồn tại và tất cả các đối số nhỏ hơn int hoặc double đã trải qua các chương trình khuyến mãi. Tìm kiếm tiêu chuẩn ISO C99 đã hết. Chính xác nguyên mẫu thu hẹp là gì? Có nguyên mẫu rộng để đối xứng không? Vấn đề tiềm tàng nào nảy sinh nếu tôi không sử dụng một mẫu thử nghiệm hẹp?

+1

Tìm kiếm gì mặc dù các nguồn của 'xterm' và Makefiles được tiết lộ? – alk

+0

Bạn đã đọc tệp 'INSTALL' trong mã nguồn' xterm' chưa? –

+0

@alk Rất nhiều autoconf/configure/imake bí ​​ẩn. Nó đặt macro -DNARROWPROTO không được sử dụng bởi xterm. Vì vậy, nó phải là một điều X. – Jens

Trả lời

5

vĩ mô NARROWPROTO được sử dụng trong Xfuncproto.h để xác định một vĩ mô

#ifdef NARROWPROTO 
#define NeedWidePrototypes 0 
#else 
#define NeedWidePrototypes 1  /* default to make interropt. easier */ 
#endif 

NeedWidePrototypes đó là lần lượt được sử dụng trong Xlib.h ví dụ theo cách sau

extern XModifierKeymap *XInsertModifiermapEntry(
    XModifierKeymap* /* modmap */, 
#if NeedWidePrototypes 
    unsigned int /* keycode_entry */, 
#else 
    KeyCode  /* keycode_entry */, 
#endif 
    int   /* modifier */ 
); 

KeyCode là một typedef từ X.h

typedef unsigned char KeyCode; 

vì vậy tôi đoán narrow ở đây, tham khảo chiều rộng của loại được sử dụng cho KeyCode.

Các cấu trúc tương tự cho cùng typedef thể được tìm thấy trong các tập tin khác, ví dụ XKBlib.h

+0

Cảm ơn! Vì vậy, * nguyên mẫu hẹp * không phải là ngôn ngữ lingo nói chung, nhưng đề cập đến độ rộng cụ thể X11 của một số loại nhất định như 'Mã khóa '. – Jens

1

Bên cạnh đó được ghi nhận trong CÀI ĐẶT, nó cũng là một câu hỏi thường gặp, chuyên đề trong một vài năm Why doesn't the scrollbar work? (xem thêm các ghi chú trong change-log trong 2006)

+0

Thomas, tôi nhận ra bạn là người bảo trì xterm. Nếu đây là (là) một câu hỏi thường gặp, trên Cygwin, các tùy chọn cấu hình mặc định sử dụng các nguyên mẫu hẹp. Có thể thay đổi kịch bản cấu hình để sử dụng các tùy chọn thích hợp (hoạt động) khi chạy trên Cygwin không? Nhìn vào kịch bản cấu hình cho xterm-314, dòng 14682, nó đặt rõ ràng cf_default_narrowproto = yes cho '* cygwin *', khi không nên làm việc ngoài hộp. – Jens

+0

Tôi cho là vậy - Tôi đã đặt mặc định dựa trên cấu hình imake - lưu ý rằng ngày sửa đổi cho macro là vào năm 2006. Kể từ năm 2006, có thể ai đó đã thay đổi cấu hình mặc định cho cygwin-x –

Các vấn đề liên quan