mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	When entering text via the numeric keys, the characters are now checked against the allowed characters
This commit is contained in:
		| @@ -2016,6 +2016,8 @@ Norbert Wentz <norbert.wentz@online.de> | ||||
| Frank Schmirler <vdr@schmirler.de> | ||||
|  for fixing handling client side termination of SVDRP connections | ||||
|  for fixing assigning schedules to channels in case there is no initial EPG information | ||||
|  for making entering text via the numeric keys check the characters against the | ||||
|  allowed characters | ||||
|  | ||||
| J<EFBFBD>rn Reder <joern@zyn.de> | ||||
|  for reporting that a recording may unnecessarily block a device with a CAM, while | ||||
|   | ||||
							
								
								
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -5021,3 +5021,5 @@ Video Disk Recorder Revision History | ||||
| - Fixed a possible segfault if VDR gets terminated while a message is displayed | ||||
|   (thanks to Udo Richter). | ||||
| - Fixed the INSTALL section on retrying shutdown later (reported by Udo Richter). | ||||
| - When entering text via the numeric keys, the characters are now checked against | ||||
|   the allowed characters (thanks to Frank Schmirler). | ||||
|   | ||||
							
								
								
									
										28
									
								
								menuitems.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								menuitems.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: menuitems.c 1.47 2006/07/30 09:09:30 kls Exp $ | ||||
|  * $Id: menuitems.c 1.48 2007/01/04 13:30:37 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "menuitems.h" | ||||
| @@ -461,13 +461,6 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key) | ||||
|                           AdvancePos(); | ||||
|                        currentChar = NULL; | ||||
|                        } | ||||
|                     if (insert && newchar) { | ||||
|                        // create a new character in insert mode | ||||
|                        if (int(strlen(value)) < length - 1) { | ||||
|                           memmove(value + pos + 1, value + pos, strlen(value) - pos + 1); | ||||
|                           value[pos] = ' '; | ||||
|                           } | ||||
|                        } | ||||
|                     if (!currentChar || !*currentChar || *currentChar == '\t') { | ||||
|                        // find the beginning of the character map entry for Key | ||||
|                        int n = NORMALKEY(Key) - k0; | ||||
| @@ -476,15 +469,28 @@ eOSState cMenuEditStrItem::ProcessKey(eKeys Key) | ||||
|                              if (*currentChar++ == '\t') | ||||
|                                 n--; | ||||
|                              } | ||||
|                        // find first allowed character | ||||
|                        while (*currentChar && *currentChar != '\t' && !strchr(allowed, *currentChar)) | ||||
|                              currentChar++; | ||||
|                        } | ||||
|                     if (*currentChar && *currentChar != '\t') { | ||||
|                        if (insert && newchar) { | ||||
|                           // create a new character in insert mode | ||||
|                           if (int(strlen(value)) < length - 1) { | ||||
|                              memmove(value + pos + 1, value + pos, strlen(value) - pos + 1); | ||||
|                              value[pos] = ' '; | ||||
|                              } | ||||
|                           } | ||||
|                        value[pos] = *currentChar; | ||||
|                        if (uppercase) | ||||
|                           value[pos] = toupper(value[pos]); | ||||
|                        currentChar++; | ||||
|                        // find next allowed character | ||||
|                        do { | ||||
|                           currentChar++; | ||||
|                           } while (*currentChar && *currentChar != '\t' && !strchr(allowed, *currentChar)); | ||||
|                        newchar = false; | ||||
|                        autoAdvanceTimeout.Set(AUTO_ADVANCE_TIMEOUT); | ||||
|                        } | ||||
|                     newchar = false; | ||||
|                     autoAdvanceTimeout.Set(AUTO_ADVANCE_TIMEOUT); | ||||
|                     } | ||||
|                  else | ||||
|                     return cMenuEditItem::ProcessKey(Key); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user