Selaa lähdekoodia

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 vuotta sitten
vanhempi
commit
cc2cd2ee73
3 muutettua tiedostoa jossa 15 lisäystä ja 36 poistoa
  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
 }