+ if (hard_copy) {
+ check_noaddress(tp, "hard_copy");
+ } else if (generic_type) {
+ check_noaddress(tp, "generic_type");
+ } else if (strchr(tp->term_names, '+') == 0) {
+ int y = 0;
+ int x = 0;
+ if (PRESENT(column_address))
+ ++y;
+ if (PRESENT(cursor_address))
+ y = x = 10;
+ if (PRESENT(cursor_home))
+ ++y, ++x;
+ if (PRESENT(cursor_mem_address))
+ y = x = 10;
+ if (PRESENT(cursor_to_ll))
+ ++y, ++x;
+ if (PRESENT(row_address))
+ ++x;
+ if (PRESENT(cursor_down))
+ ++y;
+ if (PRESENT(cursor_up))
+ ++y;
+ if (PRESENT(cursor_left))
+ ++x;
+ if (PRESENT(cursor_right))
+ ++x;
+ if (x < 2 && y < 2) {
+ _nc_warning("terminal lacks cursor addressing");
+ } else {
+ if (x < 2)
+ _nc_warning("terminal lacks cursor column-addressing");
+ if (y < 2)
+ _nc_warning("terminal lacks cursor row-addressing");
+ }
+ }
+