Browse Source

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 năm trước cách đây
mục cha
commit
cc2cd2ee73
3 tập tin đã thay đổi với 15 bổ sung36 xóa
  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
 }