fix nil ptr in /line:view

This commit is contained in:
sawka 2023-04-05 00:25:22 -07:00
parent 6c4a8e01df
commit bc89309cfe
2 changed files with 17 additions and 9 deletions

View File

@ -2332,10 +2332,16 @@ func LineViewCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sst
if err != nil {
return nil, fmt.Errorf("/line:view invalid session arg: %v", err)
}
if sessionId == "" {
return nil, fmt.Errorf("/line:view no session found")
}
screenRItem, err := resolveSessionScreen(ctx, sessionId, screenArg, "")
if err != nil {
return nil, fmt.Errorf("/line:view invalid screen arg: %v", err)
}
if screenRItem == nil {
return nil, fmt.Errorf("/line:view no screen found")
}
screen, err := sstore.GetScreenById(ctx, screenRItem.Id)
if err != nil {
return nil, fmt.Errorf("/line:view could not get screen: %v", err)
@ -2348,15 +2354,17 @@ func LineViewCommand(ctx context.Context, pk *scpacket.FeCommandPacketType) (sst
if err != nil {
return nil, err
}
updateMap := make(map[string]interface{})
updateMap[sstore.ScreenField_SelectedLine] = lineRItem.Num
updateMap[sstore.ScreenField_AnchorLine] = lineRItem.Num
updateMap[sstore.ScreenField_AnchorOffset] = 0
screen, err = sstore.UpdateScreen(ctx, screenRItem.Id, updateMap)
if err != nil {
return nil, err
if lineRItem != nil {
updateMap := make(map[string]interface{})
updateMap[sstore.ScreenField_SelectedLine] = lineRItem.Num
updateMap[sstore.ScreenField_AnchorLine] = lineRItem.Num
updateMap[sstore.ScreenField_AnchorOffset] = 0
screen, err = sstore.UpdateScreen(ctx, screenRItem.Id, updateMap)
if err != nil {
return nil, err
}
update.Screens = []*sstore.ScreenType{screen}
}
update.Screens = []*sstore.ScreenType{screen}
return update, nil
}

View File

@ -34,7 +34,7 @@ const LineNoHeight = -1
const DBFileName = "prompt.db"
const DBFileNameBackup = "backup.prompt.db"
const MaxWebShareLineCount = 50
const MaxWebShareScreenCount = 5
const MaxWebShareScreenCount = 3
const DefaultSessionName = "default"
const LocalRemoteAlias = "local"