소스 검색

Use BOXES, which will be set to CP437 or Unicode

This is set automatically after detection.  It makes
boxes and panels easier, no need for if Unicode now.
Steve Thielemann 3 년 전
부모
커밋
cc2cd2ee73
3개의 변경된 파일15개의 추가작업 그리고 36개의 파일을 삭제
  1. 8 26
      door/box.go
  2. 5 0
      door/door.go
  3. 2 10
      door/panel.go

+ 8 - 26
door/box.go

@@ -18,7 +18,9 @@ type BoxStyle struct {
 // BOXES_CP437 or BOXES_UNICODE.  That'll save us from having
 // to if Unicode when building boxes.  ;)
 
-var BOXES = [4]BoxStyle{
+var BOXES [4]BoxStyle
+
+var BOXES_CP437 = [4]BoxStyle{
 	/*
 		┌──┐
 		│  │
@@ -48,7 +50,7 @@ var BOXES = [4]BoxStyle{
 	*/
 	BoxStyle{"\xd6", "\xb7", "\xc4", "\xba", "\xd3", "\xbd", "\xc7", "\xb6"}}
 
-var BOXES_UNICODE = []BoxStyle{
+var BOXES_UNICODE = [4]BoxStyle{
 	BoxStyle{"\u250c", "\u2510", "\u2500", "\u2502", "\u2514", "\u2518", "\u251c", "\u2524"},
 	BoxStyle{"\u2554", "\u2557", "\u2550", "\u2551", "\u255a", "\u255d", "\u2560", "\u2563"},
 	BoxStyle{"\u2553", "\u2556", "\u2500", "\u2551", "\u2559", "\u255c", "\u255f", "\u2562"},
@@ -61,42 +63,22 @@ type Box struct {
 }
 
 func (b *Box) Top() string {
-	var style *BoxStyle
-	if Unicode {
-		style = &BOXES_UNICODE[b.Style]
-	} else {
-		style = &BOXES[b.Style]
-	}
+	var style *BoxStyle = &BOXES[b.Style]
 	return style.top_left + strings.Repeat(style.top, b.Width) + style.top_right
 }
 
 func (b *Box) Row(text string) string {
-	var style *BoxStyle
-	if Unicode {
-		style = &BOXES_UNICODE[b.Style]
-	} else {
-		style = &BOXES[b.Style]
-	}
+	var style *BoxStyle = &BOXES[b.Style]
 	return style.side + text + style.side
 }
 
 func (b *Box) Middle() string {
-	var style *BoxStyle
-	if Unicode {
-		style = &BOXES_UNICODE[b.Style]
-	} else {
-		style = &BOXES[b.Style]
-	}
+	var style *BoxStyle = &BOXES[b.Style]
 	return style.middle_left + strings.Repeat(style.top, b.Width) + style.middle_right
 }
 
 func (b *Box) Bottom() string {
-	var style *BoxStyle
-	if Unicode {
-		style = &BOXES_UNICODE[b.Style]
-	} else {
-		style = &BOXES[b.Style]
-	}
+	var style *BoxStyle = &BOXES[b.Style]
 	return style.bottom_left + strings.Repeat(style.top, b.Width) + style.bottom_right
 }
 

+ 5 - 0
door/door.go

@@ -218,6 +218,11 @@ func (d *Door) Init() {
 
 	fmt.Printf("BBS %s, User %s / Handle %s / File %d\n", d.Config.BBSID, d.Config.Real_name, d.Config.Handle, d.Config.Comm_handle)
 	d.detect()
+	if Unicode {
+		BOXES = BOXES_UNICODE
+	} else {
+		BOXES = BOXES_CP437
+	}
 }
 
 // Write string to client.

+ 2 - 10
door/panel.go

@@ -30,11 +30,7 @@ func (p *Panel) Output() string {
 	var output string
 
 	if style > 0 {
-		if Unicode {
-			box_style = &BOXES_UNICODE[style-1]
-		} else {
-			box_style = &BOXES[style-1]
-		}
+		box_style = &BOXES[style-1]
 	}
 
 	row := p.Y
@@ -155,10 +151,6 @@ func (p *Panel) Spacer() Line {
 		pos = 1
 	}
 
-	if Unicode {
-		l.Text = strings.Repeat(BOXES_UNICODE[pos].top, p.Width)
-	} else {
-		l.Text = strings.Repeat(BOXES[pos].top, p.Width)
-	}
+	l.Text = strings.Repeat(BOXES[pos].top, p.Width)
 	return l
 }