mylisp/gds-sabre.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 16 Jun 2021 18:38:12 +0300
changeset 1735 e8425ea2f39b
child 1736 b4c49ef014e2
permissions -rw-r--r--
Helper functions for Sabre GDS.

;;;###autoload
(defun gds-sabre-decode-region (&optional beg end prefix)
  "Decode garbage coming from UTF8 terminals when Sabre operates in iso-8859-1."
  (interactive "r\nP")
  (unless beg (setq beg (region-beginning)))
  (unless end (setq end (region-end)))
  (let (text)
    (setq text
          (decode-coding-string
           (encode-coding-string
            (decode-coding-string
             (encode-coding-string (buffer-substring beg end) 'iso-8859-1)
             'utf-8)
            'iso-8859-1)
           'cp1252))
    (when prefix
      (delete-region beg end)
      (insert text))
    text))

;;;###autoload
(defun gds-sabre-highlight ()
  (interactive)
  (highlight-phrase "[[:alpha:]_]*PseudoCityCode=\\|CreationAgent=\\|BookingSource=\\|AgentSine=" 'hi-pink)
  (highlight-phrase ":Arunk\\|:FlightSegment\\>\\|:FareBasis\\>" 'hi-pink)
  (highlight-phrase "ResBookDesigCode=\\|Status=\\|FlightNumber=\\|ArrivalDateTime=\\|DepartureDateTime=\\|FareBasisCode=\\|passengerType=\\|isPast=\\|isExpired=\\|itineraryChange=" 'hi-green)
  (highlight-phrase "InputMessage=" 'hi-blue))

;;;###autoload
(defun gds-tp-highlight ()
  (interactive)
  (highlight-phrase "\\w+Ref=\\|Key=" 'hi-blue)
  (highlight-phrase "ProviderCode" 'hi-pink)
  (highlight-phrase "\\w*LocatorCode" 'hi-pink)
  (highlight-phrase "OwningPCC" 'hi-pink)
  (highlight-phrase "FareBasis" 'hi-green)
  (highlight-phrase "CabinClass" 'hi-green)
  (highlight-phrase "BookingCode" 'hi-green)
  (highlight-phrase "FareBasis" 'hi-green)
  (highlight-phrase "ClassOfService" 'hi-green)
  (highlight-phrase "Status=" 'hi-green)
  (highlight-phrase "\\w*TotalPrice" 'hi-green))

(provide 'gds-sabre)